gpt4 book ai didi

javascript - 原型(prototype)继承的新手 - 找不到 undefined variable 的问题

转载 作者:行者123 更新时间:2023-11-30 09:01:17 25 4
gpt4 key购买 nike

我对 JavaScript 中的原型(prototype)继承很陌生,我想了解这里的问题是什么。

简单的代码,我们有两个对象pet和pet2,pet2继承自pet。

var Pet = function() {
this.type="Dog";
this.age = 4;
};

var Pet2 = function() {
this.breed = "Kashon";
};

pet = new Pet();
pet2 = new Pet2();


if (Object.create !== 'function') {
Object.create = function(oldObject) {
function F() {}
F.prototype = oldObject;
return new F();
};
}

pet2 = Object.create(pet);

问题是当我尝试访问 pet2.breed 时,它由于某种原因未定义,这是为什么?

alert(pet2.type); //ok
alert(pet2.age); //ok
alert(pet2.breed); //comes out undefined?

任何帮助都会很好 :D

最佳答案

当您使用 use Object.create 时,您将指定旧对象作为原型(prototype)(例如,Pet)。当然,不会有 Pet2 的属性。您应该使用如下原型(prototype)“继承”对象:Pet2.prototype = new Pet;

var Pet = function() {
this.type="Dog";
this.age = 4;
};

var Pet2 = function() {
this.breed = "Kashon";
};
Pet2.prototype = new Pet; // Pet2 inherits Pet

pet = new Pet();
pet2 = new Pet2();

alert(pet2.type); //ok
alert(pet2.age); //ok
alert(pet2.breed); // ok?

http://jsfiddle.net/U66aX/

关于javascript - 原型(prototype)继承的新手 - 找不到 undefined variable 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9108733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com