defineProperty

1.语法:Object.defineProperty(obj, prop, descriptor)

let obj = Object.create(null);
let descriptor = {
configurable:false,
enumerable:false,

writable:false,
value:'hello world'
};
Object.defineProperty(obj,'hello',descriptor);
console.log(obj.hello);

2.描述符:数据描述符、访问器描述符(不能同时使用)


let obj = {
_hello:'hello world' //表示私有变量
};

Object.defineProperty(obj,'hello',{
get() {
console.log('get');
return this._hello;
},
set:function (value) {
console.log('set');
this._hello = value;
}
});

console.log(obj.hello);
obj.hello = 'goodbye';
console.log(obj.hello); 

posted @ 2019-12-23 16:49  果果1024  阅读(266)  评论(0)    收藏  举报