通过Proxy (代理): 拦对象中任意属性的变化,包括: 属性值的读写、属性的添加、属性的删除等
通过Reflect (反射): 对源对象的属性进行操作
示例代码:
const p = new Proxy(person,{
//有人读取p的某个属性时调用
get(target,propName){
console.log(`有人读取了p身上的${propName}属性`);
return Reflect.get(target,propName)
},
//有人修改p的某个属性、或者给p追加某个属性时调用
set(target,propName,value){
console.log(`有人修改了p身上的${propName}属性,我要去更新界面了`)
// target[propName]=value
Reflect.set(target,propName,value)
},
//有人删除p的某个属性时调用
deleteProperty(target,propName){
console.log(`有人删除了p身上的${propName}属性,我要去更新界面了`)
return Reflect.deleteProperty(target,propName)
}
})
没太看懂~
山东的老乡哎
老乡好~哈哈😀😀