js中的getter和setter方法

飞机

在JavaScript中,getter和setter函数的作用是什么?

通常,我们使用getter和setter函数来控制对象属性的访问和修改行为,以增强代码的安全性和可维护性。

因为我们必然会有这样的需求:我们在读取或设置属性时需要执行自定义的逻辑,所以getter和setter就应运而生了。

getter函数用于读取属性值,语法如下:

get propertyName() {
  // 在这里返回属性值
}

setter函数用于设置属性值,语法是:

set propertyName() {
  // 在这里设置属性值
}

getter和setter函数可以让我们在读取或设置属性时执行「自定义逻辑」,例如:

class Person {
  constructor(name, age) {
    this._name = name;
    this._age = age;
  }

  get name() {
    return this._name.toUpperCase();
  }

  get age() {
    return this._age;
  }

  set age(age) {
    if(age < 0 || age > 120) {
      throw new Error('Invalid age');
    }
    this._age = age;
  }
}

const person = new Person('Andy', 18);
console.log(person.name); // "ANDY"
person.age = 200; // 抛出异常:"Invalid age"
console.log(person.age); // 18

在上面这个例子中,我们定义了一个Person类,这个类有俩属性:name和age,我们使用getter函数来获取name属性的值并将其转换为大写字母,使用setter函数来设置age属性的值并添加了自定义逻辑来确保age属性的值在0到120之间。