设置存取描述符
对象的属性除了直接定义,还可以通过存取器进行定义。也就是存取描述符中的 get、set。我们称之为访问器的方式。
借助访问器,可以为属性的 value 设计高级功能,如禁用部分特性、设计访问条件、利用内部变量或属性进行数据处理等。
- get:获取属性值,无参数,可以使用 this。
- set:为属性赋值,一个参数,可以使用 this。
如下代码:
function Person(name,age){
this.name = name;
this.age = age;
}
var p = new Person('小明', 14);
// 借助全局遍历实现属性的设置和获取
var value;
var result = Object.defineProperty(p,'name',{
get: function (){
return value;
},
set: function (newValue){
value = newValue;
}
});
console.log(p.name);
p.name = 'kkk';
console.log(p.name)
p.name = 'sss';
console