js实现getter
在 JavaScript 中实现 Getter
Getter 是对象属性的一种特殊方法,用于动态计算并返回属性值。通过 get 关键字定义,可以隐藏复杂的逻辑,让属性访问更直观。

基本语法
在对象字面量或类中使用 get 定义 Getter:

const obj = {
get propertyName() {
return computedValue;
}
};
对象字面量示例
const user = {
firstName: 'John',
lastName: 'Doe',
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
};
console.log(user.fullName); // 输出 "John Doe"
类中使用 Getter
class User {
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
}
const user = new User('Jane', 'Smith');
console.log(user.fullName); // 输出 "Jane Smith"
计算属性动态命名
结合方括号语法实现动态属性名:
const dynamicProp = 'status';
const obj = {
get [dynamicProp]() {
return 'active';
}
};
console.log(obj.status); // 输出 "active"
与 Setter 配合使用
通常 Getter 会与 Setter 配对实现完整属性控制:
const temperature = {
_celsius: 0,
get fahrenheit() {
return this._celsius * 1.8 + 32;
},
set fahrenheit(value) {
this._celsius = (value - 32) / 1.8;
}
};
temperature.fahrenheit = 77;
console.log(temperature._celsius); // 输出 25
注意事项
- Getter 不能接受参数
- 避免在 Getter 中进行耗时操作
- 属性会被枚举(可通过
Object.defineProperty设置enumerable: false)






