1、数据劫持 var obj = { name: 333, age: 11 };
function defineP(obj, key, value) {
Object.defineProperty(obj, key, {
get: function proxyGetter() {
console.log(key + '属性被调用了')
return value
},
set(val) {
console.log(val)
console.log(key + '属性被赋值了')
value = val
}
})
}
2、其余的一些属性
Object.defineProperty(obj, 'sex', {
value: 1,
enumerable: false, // 可枚举
configurable: false, //可删除
writable: false // 可写
})
(1)enumerable: false, // 可枚举 设置为false,表示不可枚举for in 循环的时候,不能输出这个key
(2)configurable: false, //可删除(设置为false表示不可被删除)
(3)writable: false // 可写(可被覆盖设置false表示不可被覆盖)