使用属性访问器的好处
- 用于避免错误的赋值
- 需要动态监测值的改变
- 属性只能在访问器和普通属性任选其一,不能共同存在
getter/setter
getter方法用于获得属性值,setter方法用于设置属性。我们来看一下具体的应用。
var user = {
data: { name: 'js', age: null },
set age(value) {
if (typeof value != "number" || value > 100 || value < 10) {
throw new Error("年龄格式错误");
}
this.data.age = value;
},
get age() {
return `年龄是: ${this.data.age}`;
}
};
user.age = 99;
console.log(user.age);
输出:年龄是:99
如何赋值不符合规范就会抛出错误
var user = {
data: { name: 'js', age: null },
set age(value) {
if (typeof value != "number" || value > 100 || value < 10) {
throw new Error("年龄格式错误");
}
this.data.age = value;
},
get age() {
return `年龄是: ${this.data.age}`;
}
};
user.age = 200;
console.log(user.age);
报错:VM983:5 Uncaught Error: 年龄格式错误
at Object.set age [as age] (<anonymous>:5:13)
at <anonymous>:13:10