3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
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)
所有香蕉都是黃色的,所以你不需要參數(shù)中的顏色,而且 isYummy 最初設(shè)置為 true,所以你也不需要它。您唯一的輸入是長度和直徑。(好久沒寫JS了,語法不太記得了)
const Banana = (length, diameter) => {
this.color = 'yellow';
this.length = length;
this.diameter = diameter;
this.isYummy = true
}
let myBanana = new Banana(length, diameter)
香蕉也會(huì)腐爛,這是一種行動(dòng),而行動(dòng)自然是方法。js中的實(shí)例方法是對(duì)象的原型。
在在線編譯器中,我對(duì)你的代碼有疑問,所以我像這樣重寫它:
如果 Banana 使用該編譯器中的函數(shù)編寫,則它可以是對(duì)象。
const Banana = function (length, diameter) {
this.color = 'yellow';
this.length = length;
this.diameter = diameter;
this.isYummy = true
};
然后你需要向其添加一個(gè)操作(注意,如果你使用 => 箭頭函數(shù),this上下文將會(huì)不同,而不是對(duì)象的上下文。所以要小心)
Banana.prototype.rot = function(){this.isYummy = false;}
現(xiàn)在從我們剛剛定義的對(duì)象創(chuàng)建我們的香蕉。
let myBanana = new Banana(20, 3);
console.log(myBanana.isYummy);
現(xiàn)在讓它腐爛:
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貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以在構(gòu)造函數(shù)中創(chuàng)建一個(gè)具有默認(rèn)值的類,如下所示:
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貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
目前尚不清楚您需要什么幫助,但以下是我注意到的一些問題:
據(jù)我所知,箭頭函數(shù)不能是構(gòu)造函數(shù)。嘗試實(shí)例化是
Banana
行不通的。this.color
并且在開始時(shí)this.isYummy
總是設(shè)置為 true,因此不需要將相應(yīng)的參數(shù)傳遞到構(gòu)造函數(shù)中。我猜你誤解了這
rot
件事 - 它可能并不意味著是一個(gè)單獨(dú)的變量或?qū)傩?,而只是一些邏輯,例如將屬性設(shè)置isYummy
為 false 的超時(shí):
setTimeout(() => { this.isYummy = false }, 1000); // rot after one second
將其放在構(gòu)造函數(shù)的末尾。
添加回答
舉報(bào)