📅  最后修改于: 2023-12-03 15:01:43.095000             🧑  作者: Mango
在 JavaScript 中,属性访问器方法(Accessor Properties)提供了一种更复杂的对象属性访问方法,它由 getter 和 setter 两个方法组成,可以让开发者更加精细地控制对象属性的读写行为。
getter 方法用于获取对象属性的值。它是一个无参数的函数,它的返回值被当作属性的值。
const obj = {
get prop() {
return 'getter';
}
};
console.log(obj.prop); // "getter"
在上面的例子中,我们定义了一个对象 obj
,它有一个 getter 方法 prop
,当我们访问 obj.prop
的时候,它会返回 'getter'
。
setter 方法用于设置对象属性的值。它接收一个参数,表示属性的新值。
const obj = {
_prop: '',
set prop(val) {
this._prop = val;
}
};
obj.prop = 'setter';
console.log(obj._prop); // "setter"
在上面的例子中,我们定义了一个对象 obj
,它有一个 setter 方法 prop
,当我们通过 obj.prop = 'setter'
来设置属性值的时候,实际上是调用了 setter 方法,该方法将新值 'setter'
赋值给了对象内部的 _prop
属性。
getter 和 setter 方法可以配合使用,让我们实现对属性读取和写入的精细控制。
const obj = {
_age: null,
get age() {
return this._age;
},
set age(val) {
if (val < 0) {
throw new Error('Not a valid age!');
}
this._age = val;
}
};
obj.age = 20;
console.log(obj.age); // 20
obj.age = -1; // Error: Not a valid age!
在上面的例子中,我们定义了一个 obj
对象,并且定义了一个 _age
属性来存储年龄,同时定义了一个 getter 方法 age
和一个 setter 方法 age
。在 setter 方法中,我们限制了传入的值必须为正整数,否则会抛出一个错误。这样,我们就能实现对属性读取和写入的精细控制。
以上就是 JavaScript 属性访问器方法的介绍,希望对你有帮助!