Object.defineProperty() 和 new Proxy()
let obj = {
name: 'xiaoming',
age: '18'
}
let name = 'lihua'
Object.defineProperty(obj, 'name', {
get(){
console.log('读取name属性1')
return
},
set(newVal){
console.log('监听name属性变化1')
name = newVal
}
})
const proxy = new Proxy(obj, {
get(target, propName){
console.log(`读取${propName}属性2`)
return
},
set(target, propName, newVal){
console.log(`监听${propName}属性变化2`)
console.log(target, propName, newVal)
name = newVal
}
})
obj.name = 'xiaohong'
proxy.name = 'xiaolan'
console.log(name)