setter getter访问器
时间: 2024-01-01 07:52:15 浏览: 23
setter和getter访问器是用于访问和修改对象属性的方法。它们通常用于面向对象编程中,可以保护对象的私有属性,同时提供公共接口,使外部代码可以访问和修改属性的值。
setter访问器通常用于设置属性的值,它接收一个参数,并将其赋值给属性。例如,如果有一个名为“age”的属性,可以定义一个setter访问器来设置它的值,如下所示:
```
class Person {
private _age: number;
set age(value: number) {
if (value < 0) {
throw new Error('Age cannot be negative');
}
this._age = value;
}
get age() {
return this._age;
}
}
const person = new Person();
person.age = 30;
console.log(person.age); // 30
person.age = -1; // throws an error
```
在这个例子中,我们定义了一个Person类,并将_age属性设置为私有。然后,我们定义了一个setter访问器来设置_age的值,并在其中添加了一些验证逻辑。最后,我们定义了一个getter访问器来获取_age的值。
getter访问器通常用于获取属性的值,它不接收任何参数,但它可以执行一些操作,并返回属性的值。例如,如果有一个名为“fullName”的属性,可以定义一个getter访问器来获取它的值,如下所示:
```
class Person {
private _firstName: string;
private _lastName: string;
get fullName() {
return `${this._firstName} ${this._lastName}`;
}
set firstName(value: string) {
this._firstName = value;
}
set lastName(value: string) {
this._lastName = value;
}
}
const person = new Person();
person.firstName = 'John';
person.lastName = 'Doe';
console.log(person.fullName); // John Doe
```
在这个例子中,我们定义了一个Person类,并将_firstName和_lastName属性设置为私有。然后,我们定义了一个getter访问器来获取fullName的值,它返回_firstName和_lastName的组合字符串。最后,我们定义了两个setter访问器来设置_firstName和_lastName的值。