1 回答

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
除了 getter 方法之外,我們還可以創(chuàng)建 setter 方法來重新分配對(duì)象內(nèi)現(xiàn)有屬性的值。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');
}
}
};
請(qǐng)注意,在上面的示例中:
我們可以檢查分配給 this._age 的值。
當(dāng)我們使用setter方法時(shí),只有數(shù)字值才會(huì)重新分配this._age
根據(jù)用于重新分配 this._age 的值,會(huì)有不同的輸出。
然后使用setter方法:
person.age = 40;
console.log(person._age); // Logs: 40
person.age = '40'; // Logs: You must assign a number to age
像 Age 這樣的 Setter 方法不需要使用一組括號(hào)來調(diào)用。從語法上看,我們似乎正在重新分配屬性的值。
與 getter 方法一樣,使用 setter 方法也有類似的優(yōu)點(diǎn),包括檢查輸入、對(duì)屬性執(zhí)行操作以及顯示對(duì)象應(yīng)如何使用的明確意圖。盡管如此,即使使用 setter 方法,仍然可以直接重新分配屬性。例如,在上面的例子中,我們?nèi)匀豢梢灾苯釉O(shè)置._age:
person._age = 'forty-five'
console.log(person._age); // Prints forty-five
添加回答
舉報(bào)