1 回答

TA貢獻1835條經驗 獲得超7個贊
除了 getter 方法之外,我們還可以創建 setter 方法來重新分配對象內現有屬性的值。setter 方法的示例:
const person = {
_age: 37,
set age(newAge){
if (typeof newAge === 'number'){
this._age = newAge;
} else {
console.log('You must assign a number to age');
}
}
};
請注意,在上面的示例中:
我們可以檢查分配給 this._age 的值。
當我們使用setter方法時,只有數字值才會重新分配this._age
根據用于重新分配 this._age 的值,會有不同的輸出。
然后使用setter方法:
person.age = 40;
console.log(person._age); // Logs: 40
person.age = '40'; // Logs: You must assign a number to age
像 Age 這樣的 Setter 方法不需要使用一組括號來調用。從語法上看,我們似乎正在重新分配屬性的值。
與 getter 方法一樣,使用 setter 方法也有類似的優點,包括檢查輸入、對屬性執行操作以及顯示對象應如何使用的明確意圖。盡管如此,即使使用 setter 方法,仍然可以直接重新分配屬性。例如,在上面的例子中,我們仍然可以直接設置._age:
person._age = 'forty-five'
console.log(person._age); // Prints forty-five
添加回答
舉報