具体来说,它与Codecadamy示例有何关系?
let person = {
_name: 'Lu Xun',
_age: 137,
set age(ageIn) {
if (typeof ageIn === 'number') {
this._age = ageIn;
}
else {
console.log('Invalid input');
return 'Invalid input';
}
}
};
对我来说,为什么他们把ageIn放在age()里面是没有意义的,它做了什么?
谢谢!
答案 0 :(得分:0)
setter是一个在您尝试更改参数时执行的函数。
set age(ageIn)
在上面的setter函数中,他们试图在将它分配给对象的_age属性之前,确定它们试图设置的参数是否为数字。仅当用户将值设置为person.age = 140并且将person._age更新为140时,才会调用此方法。
但是,如果用户尝试直接更新_age属性,则不会执行此方法并直接更新person._age
这是一个有用的资源,可以更多地了解setter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set
希望这会有所帮助。快乐的编码