gpt4 book ai didi

JavaScript - 继承错误

转载 作者:行者123 更新时间:2023-11-29 19:35:02 26 4
gpt4 key购买 nike

我正在尝试使用继承,但我卡住了。我遇到错误,不知道自己做错了什么。我在网上看到的所有例子都没有将对象传递给它们的构造函数,所以我不确定我应该做什么。这是一个简单的例子-

function Automobile(obj){
this.name = obj.name;
this.model = obj.model;
}

Automobile.prototype = {
getName: function(){
console.log(this.name);
},
getModel: function(){
console.log(this.model);
}
}

var bmw = new Automobile({
name: 'BMW',
model: 'm5'
})

bmw.getName();
bmw.getModel();


function Truck(obj){
this.cabSize = obj.cabSize
}

Truck.prototype = new Automobile();
Truck.prototype = {
getCabSize: function(){
console.log(this.cabSize);
}
}

var fordF150 = new Truck({
name: 'Ford',
model: 'F150'
})

//Uncaught TypeError: Cannot read property 'name' of undefined test.js:2
//Automobile test.js:2
//(anonymous function)

最佳答案

错误发生在 Truck.prototype = new Automobile();。您没有传递 Automobile 期望的 obj。

要避免这种情况,请尝试 Truck.prototype = Object.create(Automobile.prototype)

之后使用

Truck.prototype.getCabSite = function(){
}

这样您就不会覆盖从 Automobile 继承的属性。

关于JavaScript - 继承错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25559366/

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