7.2 getter setter

访问器属性(accessor properties)。它们本质上是用于获取和设置值的函数,但从外部代码来看就像常规属性。

  1. let user = {
  2. get name() {
  3. return this._name;
  4. },
  5. set name(value) {
  6. if (value.length < 4) {
  7. alert("Name is too short, need at least 4 characters");
  8. return;
  9. }
  10. this._name = value;
  11. },
  12. };
  13. user.name = "Pete";
  14. alert(user.name); // Pete

有一个众所周知的约定,即以下划线 “_” 开头的属性是内部属性,不应该从对象外部进行访问。