Javascript 中的 setter 如何工作?

How do setters work in Javascript?

具体来说,它如何与这个 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() 里面,它有什么作用?

谢谢!

A setter 是一个在您尝试更改参数时执行的函数。

set age(ageIn)

在上面的 setter 函数中,他们试图在将其分配给对象的 _age 属性 之前确定他们试图设置的参数是否为数字。仅当用户将值设置为 person.age=140 时才会调用此方法,它会将 person._age 更新为 140。

但是,如果用户试图直接更新 _age 属性,它将不会执行此方法,而是直接更新 person._age

这是对 setters https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set

有更多了解的有用资源

希望这对您有所帮助。快乐编码