JavaScript 中的 Getters 和 Setters简介

112 阅读1分钟

JavaScript 中的 Getters 和 Setters 是用于访问和设置对象属性的特殊方法。它们允许您在属性访问时执行自定义代码。

Getters

Getters 是一种函数,用于获取对象的属性值。它们以 get 关键字开头,后跟一个空格和属性名称。以下是一个例子:

const person = {
  firstName: "John",
  lastName: "Doe",
  get fullName() {
    return `${this.firstName} ${this.lastName}`;
  }
};

console.log(person.fullName); // "John Doe"

在上面的例子中定义了一个名为 fullName 的 getter。当 person.fullName 被调用时,getter 函数会执行并返回 firstNamelastName 的值。

Setters

Setters 是一种函数,用于设置对象的属性值。它们以 set 关键字开头,后跟一个空格和属性名称。以下是一个例子:

const person = {
  firstName: "John",
  lastName: "Doe",
  set fullName(name) {
    const names = name.split(" ");
    this.firstName = names[0];
    this.lastName = names[1];
  }
};

person.fullName = "Jane Smith";

console.log(person.firstName); // "Jane"
console.log(person.lastName); // "Smith"

在上面的例子中定义了一个名为 fullName 的 setter。当 person.fullName 被设置时,setter 函数会执行并将 firstNamelastName 的值设置为传递给它的字符串中的第一个和第二个单词。

Getters 和 Setters 的用途

Getters 和 Setters 可以帮助我们在访问和设置对象属性时进行验证和转换。以下是一个例子:

class Temperature {
  constructor(celsius) {
    this.celsius = celsius;
  }

  get fahrenheit() {
    return (this.celsius * 1.8) + 32;
  }

  set fahrenheit(value) {
    this.celsius = (value - 32) / 1.8;
  }
}

const temp = new Temperature(30);
console.log(temp.fahrenheit); // 86

temp.fahrenheit = 68;
console.log(temp.celsius); // 20