参考文档:Reflect - JavaScript | MDN
Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法
得到一个属性
更改一个属性
当然增加也是可以的
删除呢?
配合proxy,实现简单的响应原理
<script>
let person = {
name: '高山我梦',
age: 20
}
let p = new Proxy(person, {
get(target, property, receiver) {
console.log('我是读取的逻辑哦');
console.log(receiver);
// return target[property]
return Reflect.get(target, property)
},
set(target, property, value) {
console.log('我被修改或增加了,传进来的值是', value);
// 写上逻辑就行了
// target[property] = value
Reflect.set(target, property, value)
},
deleteProperty(target, property) {
// return delete target[property]
return Reflect.deleteProperty(target, property)
}
})
</script>