📜  JS++ | Getter 和 Setter(1)

📅  最后修改于: 2023-12-03 15:02:25.594000             🧑  作者: Mango

JS++ | Getter 和 Setter

在 JavaScript 中,Getter 和 Setter 是用来访问对象属性的两种特殊方法。Getter 方法用于获取属性值,Setter 方法用于设置属性值。通过使用 Getter 和 Setter,你可以控制对象属性的访问和修改。

Getter 方法

Getter 方法是一个用于获取对象属性值的特殊方法。它只有一个名称,它与对象属性名称相同,并且在对象字面量中以 get 关键字表示。Getter 方法不需要任何参数,它只需要返回你想要访问的属性的值。

以下是一个简单示例:

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

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

在这个示例中,fullName 属性没有实际的值,它只是一个 Getter 方法,它返回 firstName 和 lastName 属性的值。因此,当我们调用 fullName 时,实际上是调用 Getter 方法。

Setter 方法

Setter 方法是用于设置对象属性值的特殊方法。Setter 方法也具有一个名称,它与对象属性名称相同,并且在对象字面量中以 set 关键字表示。Setter 方法接受一个参数,它将用于设置对象属性的新值。

以下是一个示例:

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

person.fullName = 'Jane Doe';

console.log(person.firstName); // 'Jane'
console.log(person.lastName); // 'Doe'

在这个示例中,fullName 属性是一个 Setter 方法,它接受一个参数 name,并且根据空格将其拆分成 firstName 和 lastName。接下来,它通过将这些值设置为对象的属性值来修改对象的状态。因此,当我们设置 fullName 时,实际上是调用 Setter 方法。

总之,Getter 和 Setter 是 JavaScript 中非常有用的特殊方法,它们允许您根据需要动态地控制对象属性的访问和修改。