gpt4 book ai didi

javascript - 通过javascript继承

转载 作者:行者123 更新时间:2023-11-29 17:24:51 24 4
gpt4 key购买 nike

我一直在试验 javascript 的原型(prototype)继承,并且遇到了一些可能可以解释的事情。

function dinner(food,drink){
this.food=food;
this.drink=drink;

}
dinner.prototype.desert=function(){
var x = this.food;

return x.split(' ')[0]+' Ice Cream Float';
}
function superSupper(steak){
this.steak=steak;
}
superSupper.prototype= new dinner();
superSupper.prototype.constructor=superSupper;
var x = new superSupper('corn','beet juice')
x.grub='beef';
x.clams = 'nope';

在上面的代码中,我创建了一个新的构造函数“superSupper”并使其继承自晚餐。当在 console.log 中查看时,我看到了:

superSupper
clams: "nope"
grub: "beef"
steak: "corn"
__proto__: dinner
constructor: function superSupper(steak){
drink: undefined
food: undefined
__proto__: dinner

我如何访问我现在从晚餐继承的饮料和食物属性?

附注试试这个:“x.food='some string'”只在 superSupper 实例中创建一个名为 food 的新属性,但不会为继承的 food 属性赋值。

最佳答案

你必须稍微修改一下你的superSupper:

function superSupper(steak){
// calling superclass constructor
dinner.apply(this, arguments);
this.steak=steak;
}

关于javascript - 通过javascript继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9705967/

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