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)

posted @ 2023-06-30 16:19  不要香菜谢谢~  阅读(42)  评论(0)    收藏  举报
123456