对象监听
Object.defineProperty的(存取属性描述)监听对象
const obj = {
_name: 'zjf',
age: 21
}
// 监听所有属性
Object.keys(obj).forEach(key => { // 缺点多
let value = obj[key];
Object.defineProperty(obj, key, {
get: function() {
console.log(`监听到obj的${key}属性被访问`);
return value;
},
set: function(newValue) {
console.log(`监听到obj的${key}属性被设置值`);
value = newValue;
}
})
})
obj._name = 'why';
obj.age = 22;
console.log(obj._name);
console.log(obj.age);
2022/2/1大约 11 分钟