hand
_1_11_284
4
返回栏目
0k
2k
1k
2k
1k
1k
1k
2k
2k
2k
1k
2k
1k
2k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
1k
1k
2k
1k
1k
1k
1k
1k
1k
1k
2k
1k
2k
1k
1k
1k
1k
1k
1k
1k
2k
2k
1k
1k
1k
2k
1k
1k
2k
2k
1k
1k
1k
2k
1k
1k
2k
2k
1k
2k
1k
1k
2k
2k
2k
3k
3k
2k
3k
2k
3k
3k
3k
1k
2k
3k
2k
2k
3k
3k
2k
2k
6k
3k
2k
2k
5k
3k
4k
3k
3k
2k
4k
3k
3k
2k
3k
3k
1k
4k
4k
4k
2k
5k
3k
2k
3k
4k
3k
3k
4k
2k
3k
3k
4k
2k
2k
3k
4k
3k
3k
2k
5k
2k
3k
3k
3k
3k
2k
3k
3k
3k
2k
2k
2k
2k
3k
2k
2k
2k
3k
2k
2k
2k
2k
2k
2k
0.1k
0.2k
3k
2k
3k
2k
0.1k
2k
2k
4k
2k
2k
1k
2k
2k
3k
3k
3k
3k
2k
2k
3k
3k
3k
4k
3k
3k
4k
3k
2k
2k
3k
3k
3k
3k
3k
3k
2k
3k
3k
4k
4k
3k
3k
2k
2k
3k
2k
2k
1k
2k
3k
1k
2k
2k
2k
2k
2k
2k
2k
2k
2k
4k
2k
3k
2k
1k
2k
2k
2k
2k
2k
3k
2k
3k
1k
2k
2k
2k
0k
2k
2k
2k
2k
2k
2k
2k
3k
2k
2k
1k
1k
3k
2k
3k
1k
2k
1k
2k
2k
2k
2k
3k
1k
3k
2k
2k
2k
2k
2k
2k
1k
2k
2k
4k
3k
3k
2k
2k
2k
2k
2k
2k
4k
3k
3k
3k
2k
2k
2k
2k
2k
2k
3k
4k
返回前端 - Javascript栏目
作者:
贺及楼
成为作者
更新日期:2025-02-21 21:18:39
在 JavaScript 里,类是创建对象的蓝图,它让我们能够以一种更结构化和面向对象的方式编写代码。而类访问器字段为我们操控类的属性提供了强大且灵活的途径。接下来,我们将深入探究类访问器字段的语法以及如何在类中定义它们。
类访问器字段由 getter 和 setter 方法构成。getter 方法用于获取属性的值,而 setter 方法则用于设置属性的值。借助访问器字段,我们能够在获取或设置属性时执行额外的逻辑,像数据验证、计算派生值等。
Getter 方法借助 get
关键字来定义,其语法如下:
class ClassName {
get propertyName() {
// 这里编写获取属性值的逻辑
return value;
}
}
Setter 方法使用 set
关键字来定义,其语法如下:
class ClassName {
set propertyName(value) {
// 这里编写设置属性值的逻辑
}
}
下面是一个简单的类,其中包含 getter 和 setter 方法:
class Person {
constructor() {
this._age = 0;
}
get age() {
console.log('Getting the age...');
return this._age;
}
set age(newAge) {
console.log('Setting the age...');
if (newAge < 0) {
console.log('Age cannot be negative.');
} else {
this._age = newAge;
}
}
}
const person = new Person();
// 使用 setter 设置年龄
person.age = 25;
// 使用 getter 获取年龄
console.log(person.age);
在这个例子中,_age
是一个私有属性(在 JavaScript 里,以 _
开头的属性通常表示私有属性,但并非真正的私有)。get age()
方法用于获取 _age
的值,而 set age(newAge)
方法用于设置 _age
的值,并且在设置之前会进行数据验证。
通过 setter 方法,我们可以在设置属性值之前进行数据验证,从而保证数据的有效性。就像上面的例子,年龄不能为负数。
Getter 方法可用于计算派生值,也就是根据其他属性的值计算出一个新的值。例如:
class Rectangle {
constructor(width, height) {
this._width = width;
this._height = height;
}
get area() {
return this._width * this._height;
}
}
const rectangle = new Rectangle(5, 10);
console.log(rectangle.area);
在这个例子中,area
是一个派生属性,它的值是通过 width
和 height
计算得出的。
访问器字段能够隐藏类的内部实现细节,仅对外提供统一的接口。外部代码只能通过 getter 和 setter 方法来访问和修改属性,这样可以避免直接访问和修改内部属性,提高代码的安全性和可维护性。
类型 | 关键字 | 作用 | 示例 |
---|---|---|---|
Getter | get |
获取属性的值 | get propertyName() { return value; } |
Setter | set |
设置属性的值 | set propertyName(value) { // 设置逻辑 } |
类访问器字段为我们提供了一种灵活且强大的方式来管理类的属性。通过 getter 和 setter 方法,我们可以进行数据验证、计算派生值以及提高代码的封装性。在实际开发中,合理运用类访问器字段能够让我们的代码更加健壮和易于维护。
前端 - Javascript
整章节共299节
快分享给你的小伙伴吧 ~