我在JavaScript中實現了從父類繼承的函數。它適用於這種風格的代碼。在對象原型中定義繼承
function Foo(){}
Foo.prototype = {
constructor: Foo,
name: 'foo',
tostring: function()
{
return this.name;
}
};
function Bar(){}
Bar.prototype = new Foo();
Bar.prototype.name = 'bar';
var b = new Bar();
console.log(b.tostring()); // says 'bar'
這沒關係。但是我在Bar中有很多屬性,我不想每次重複Bar.prototype.someProp,所以我使用了簡寫版本,並且它不是繼承。
function Bar(){}
Bar.prototype = new Foo();
Bar.prototype = {
constructor: Bar,
name: 'bar'
};
console.log(b.tostring()); // doesn't work since the method doesn't exist
我假設Bar.prototype被本地對象的Javascript覆蓋。我如何繼承使用簡寫Bar.prototype = {}
並避免重複?
你爲什麼要修改的原型,而不是對象只是定義函數? – David
請仔細闡述,@David – Hawk
請參閱:http://google.github.io/styleguide/javascriptguide.xml?showone=Method_and_property_definitions#Method_and_property_definitions 爲了調試和語言的安全性,最好不要觸摸通常是一個物體的原型。 – David