0
讓我們有2個構造雜質VS原型繼承
bird= function(name){
this.cry=function(){ alert('cry'); }
this.name=name;
}
duck= function(){
this.cry=function(){ alert('cry cry'); }
}
b= new bird('Ivan');
d= duck.call(b);
,並考慮原型繼承
bird= function(name){
this.cry=function(){ alert('cry'); }
this.name=name;
}
duck= function(){
this.cry=function{ alert('cry cry'); }
}
duck.prototype= new bird('Ivan');
你可以得到一個例子,當原型繼承更好,然後雜質的方法,當雜質更好然後原型繼承。
在你的第一個例子中,根本沒有繼承。您只需將構造函數作爲函數調用,並將bird的實例作爲'this'與'duck.call(b)'綁定並覆蓋現有的'b'實例的方法。 * FYI *變量'd'在你的情況下是無用的。 – Givi
可能的重複[什麼時候應該選擇原型繼承vs功能繼承?](http://stackoverflow.com/questions/16135369/when-should-one-choose-prototypal-inheritance-vs-functional-inheritance) – Bergi