1. 程式人生 > >JavaScript中有關原型鏈應用的例項

JavaScript中有關原型鏈應用的例項

JavaScript中原型鏈十分重要。 為方便直觀感受js中原型鏈的呼叫,舉例驗證。以下為程式碼:

function Pet(name,age){
	if(this instanceof Pet===true&&name&&age){
		  this.name=name;
		  this.age=age;
		}	  
	}
Pet.prototype.play=function(){
   console.log("Your pet "+this.name+" wants to play with you!");
}
Pet.prototype.say=function(words){
	 console.log("Your pet "+this.name+" is saying "+words+" to you!");
	}

function Cat(name,age,sex){
	  if(this instanceof Cat===true&&age&&name){
		  Pet.call(this,name,age);
		  this.sex=sex;
		}	  
	}

Cat.prototype=Object.create(Pet.prototype);
Cat.prototype.constructor=Cat;

Cat.prototype.play=function(){
	  console.log("Cat "+this.name+" is playing with you!");
	}
Cat.prototype.say=function(word){
	  Pet.prototype.say.apply(this,arguments);
	}

var m=new Pet("Cindy",3);
var ming=new Cat("Cindy",3,"girl");
m.play();
ming.play();

m.say("hi");
ming.say("miao");

下面為瀏覽器控制檯輸出結果:

由以下語句將Cat的原型連結為Pet:

Cat.prototype=Object.create(Pet.prototype);
Cat.prototype.constructor=Cat;

也可使用該語句,效果類同:

Cat.prototype=new Person(); 
Cat.prototype.constructor=Cat; 

繼承基類的屬性及方法可使用call,apply,效果類同,方法有差別,可見上例。

勤加練習,多多感悟,與君共同進步!