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
添加回答
举报