Javascript 从其他对象继承-继承默认值时出现问题
我必须创建两个构造函数,其中Animal是从构造函数继承的构造函数。饥饿值必须为默认值=5。我有一个饥饿的问题-若我创造一个新的动物…它每次得到饥饿=5,即使我写了9。 默认情况下,动物的类型必须是Javascript 从其他对象继承-继承默认值时出现问题,javascript,object,Javascript,Object,我必须创建两个构造函数,其中Animal是从构造函数继承的构造函数。饥饿值必须为默认值=5。我有一个饥饿的问题-若我创造一个新的动物…它每次得到饥饿=5,即使我写了9。 默认情况下,动物的类型必须是“动物” 我的代码: function Constructor(firstName,lastName,age,type,hunger=5) { if (hunger >10) { return new Error("too much hunger")
“动物”
我的代码:
function Constructor(firstName,lastName,age,type,hunger=5) {
if (hunger >10) {
return new Error("too much hunger")
}
else {
this.firstName = firstName
this.lastName = lastName
this.age=age
this.type=type
this.hunger = hunger
}
}
function Animal(firstName,lastName,age,hunger) {
Constructor.call(this,firstName,lastName,age,hunger)
this.type = "animal"
}
Animal.prototype = Object.create(Constructor.prototype)
Animal.prototype.constructor = Animal
const animal = new Animal("cat", "big cat", 10, 9)
console.log(animal)
将
type
作为参数传递-Constructor
接受5个参数,而不是4类型不是问题,问题实际上是饥饿,它总是5。类型必须始终为“动物”,而不是默认值是的,我知道问题在于饥饿
。这是因为您没有将type
作为参数传递。通过构造函数
它期望的5个参数,它会工作的,谢谢-我是否能够消除类型
?我不想把任何东西都写成类型
。现在我可以写一个数字作为一个类型,它仍然是“动物”,但我不想在创建对象时用“类型”写任何东西。还有一件事-在animal
中,饥饿的默认值现在不起作用,所以如果我不在hunger
中写任何东西,它不是5,它是未定义的。