访问器是用于访问对象属性的方法,它包含 getter 和 setter 方法。getter 方法用于获取属性的值,setter 方法用于设置属性的值。使用访问器可以保护对象属性的访问,实现属性的读取和写入控制,以及在获取和设置属性值时进行自定义处理。
在 JavaScript 中,使用关键字 get
和 set
定义访问器方法,它们分别用于定义属性的 getter 和 setter 方法。例如:
let obj = {
_name: '', // 私有属性
get name() {
return this._name;
},
set name(value) {
console.log(`setting name to ${value}`);
this._name = value;
}
};
obj.name = 'John'; // "setting name to John"
console.log(obj.name); // "John"
在以上代码中,我们定义了一个名为 obj
的对象,它包含私有属性 _name
和访问器属性 name
。name
属性包含 getter 和 setter 方法,用于获取和设置 _name
的值。当我们设置 obj.name
属性时,会调用 setter 方法,并输出 "setting name to John"
的信息;当我们读取 obj.name
属性时,会调用 getter 方法,并返回 _name
的值。
访问器属性的优点在于可以将对象属性的读取和写入操作抽象成方法,并且可以在读取和写入时进行自定义处理,例如验证、转换和计算等。