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
將其放在構造函數的末尾。
添加回答
舉報