计算属性get set
时间: 2023-07-18 13:28:01 浏览: 43
计算属性是指通过一些逻辑计算而来的属性,它们的值并不是在对象实例化时就确定的,而是在访问时根据计算规则动态获取的。在 JavaScript 中,我们可以使用 get 和 set 关键字来定义计算属性。
get 关键字用于定义计算属性的读取方法,当访问该属性时,会自动调用 get 方法并返回计算后的值。set 关键字用于定义计算属性的设置方法,当给该属性赋值时,会自动调用 set 方法,并根据传入的值进行计算和赋值。
下面是一个例子,展示了如何使用 get 和 set 关键字定义一个计算属性:
```
const obj = {
_value: 0,
get value() {
console.log('Getting value...');
return this._value;
},
set value(newValue) {
console.log('Setting value...');
this._value = newValue * 2;
}
};
console.log(obj.value); // 输出 "Getting value... 0"
obj.value = 10; // 输出 "Setting value..."
console.log(obj.value); // 输出 "Getting value... 20"
```
在上面的例子中,我们定义了一个名为 value 的计算属性,它的实际值存储在 obj._value 中。当我们访问 obj.value 时,会自动调用 get 方法并输出 "Getting value...",然后返回 obj._value 的值。当我们给 obj.value 赋值时,会自动调用 set 方法并输出 "Setting value...",然后计算 newValue * 2 并将结果赋值给 obj._value。最后,再次访问 obj.value 时,会自动调用 get 方法并输出 "Getting value...",然后返回计算后的值 20。