3 回答
TA贡献1829条经验 获得超9个赞
const Banana = (color, length, diameter, isYummy) => {
this.color = 'yellow';
this.length = length;
this.diameter = diameter;
this.isYummy = true
}
let rot = new Banana('yellow', length, diameter, false)
所有香蕉都是黄色的,所以你不需要参数中的颜色,而且 isYummy 最初设置为 true,所以你也不需要它。您唯一的输入是长度和直径。(好久没写JS了,语法不太记得了)
const Banana = (length, diameter) => {
this.color = 'yellow';
this.length = length;
this.diameter = diameter;
this.isYummy = true
}
let myBanana = new Banana(length, diameter)
香蕉也会腐烂,这是一种行动,而行动自然是方法。js中的实例方法是对象的原型。
在在线编译器中,我对你的代码有疑问,所以我像这样重写它:
如果 Banana 使用该编译器中的函数编写,则它可以是对象。
const Banana = function (length, diameter) {
this.color = 'yellow';
this.length = length;
this.diameter = diameter;
this.isYummy = true
};
然后你需要向其添加一个操作(注意,如果你使用 => 箭头函数,this上下文将会不同,而不是对象的上下文。所以要小心)
Banana.prototype.rot = function(){this.isYummy = false;}
现在从我们刚刚定义的对象创建我们的香蕉。
let myBanana = new Banana(20, 3);
console.log(myBanana.isYummy);
现在让它腐烂:
myBanana.rot();
console.log(myBanana.isYummy);
const Banana = function (length, diameter) {
this.color = 'yellow';
this.length = length;
this.diameter = diameter;
this.isYummy = true
};
Banana.prototype.rot = function(){this.isYummy = false;}
let myBanana = new Banana(20, 3);
console.log(myBanana.isYummy);
myBanana.rot();
console.log(myBanana.isYummy);
TA贡献1816条经验 获得超6个赞
您可以在构造函数中创建一个具有默认值的类,如下所示:
class Banana{
constructor(length, diameter){
this.color = 'Yellow';
this.length = length;
this.diameter = diameter;
this.isYummy = true;
}
}
var myBanana = new Banana('10cm', '2cm');
// to toggle rot or isYummy property
myBanana.isYummy = false;
console.log(myBanana) // to see your object in console
TA贡献1820条经验 获得超2个赞
目前尚不清楚您需要什么帮助,但以下是我注意到的一些问题:
据我所知,箭头函数不能是构造函数。尝试实例化是
Banana
行不通的。this.color
并且在开始时this.isYummy
总是设置为 true,因此不需要将相应的参数传递到构造函数中。我猜你误解了这
rot
件事 - 它可能并不意味着是一个单独的变量或属性,而只是一些逻辑,例如将属性设置isYummy
为 false 的超时:
setTimeout(() => { this.isYummy = false }, 1000); // rot after one second
将其放在构造函数的末尾。
添加回答
举报