JavaScript中有關原型鏈應用的例項
阿新 • • 發佈:2018-11-10
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,效果類同,方法有差別,可見上例。
勤加練習,多多感悟,與君共同進步!