我有這段代碼。原型繼承和設置值
Animal = function(age)
{
Animal.prototype.age = age;
};
Animal.prototype.constructor = Animal;
Animal.prototype.Walk = function()
{
console.log("Animal Walking");
};
Pet = function(age, name)
{
Pet.prototype.name = name;
};
Pet.prototype.constructor = Pet;
Pet.prototype = Object.create(new Animal());
Pet.prototype.DoTricks = function()
{
console.log(this.name + " is doing tricks!");
};
var pet = new Pet(5, "Barney");
console.log(pet);
所有的動物有一個年齡,可以走路。 寵物通過其原型繼承動物。 寵物有名字,可以做技巧,他們也有年齡,可以走路。
如何組織我的代碼來實現此行爲?目前我可以做到這一點,所以寵物可以走路,但他們的年齡沒有定義,因爲我無法通過構造函數超過它的年齡。
非常感謝!
提示:不要修改構造函數中的'prototype'。 'prototype'在所有實例之間共享,而構造函數則應該修改單個實例('this')。 –
提示:在設置原型的部分之前,'Pet.prototype.constructor = Pet;'行不會執行任何操作。另外,'Pet = function(age,name)'是未聲明的,你應該使用'function Pet(age,name)'(它也給它一個名字並且在嚴格模式下工作)。 – Ryan