前置阅读:什么是Reflect对象
const info = {
name:"why",
age:18,
// 规范:以_开头认为它是私有属性
_height:1.88,
set height(newValue){
this._height = newValue * 100
},
get height(){
return this._height + "cm"
}
}
// 在使用Proxy监听对象的改变时,直接操作原对象和使用Reflect有什么区别?
const infoProxy = new Proxy(info,{
set(target,key,value,receiver){
console.log('info被捕捉了它的set操作:',key)
//target[key] = value
return Reflect.set(target,key,value,receiver)
},
get(target,key,value,receiver){
console.log('info被捕捉了它的get操作:',key)
//return target[key]
return Reflect.get(target,key,receiver)
},
has(target,key){
console.log("判断是否有",key)
return Reflect.has(target,key)
}
})
// infoProxy.name = "kobe"
// console.log(infoProxy.name)
// console.log("name" in infoProxy)
infoProxy.height = 2.01
// console.log(infoProxy.height)运行结果为下面图所示:
文章不错支持一下,非常喜欢
文章不错非常喜欢,支持一下
友链已经添加好了,欢迎回访哈
文章不错支持一下,非常喜欢
文章不错非常喜欢,支持一下
文章不错支持一下,非常喜欢
文章不错非常喜欢,支持一下
马克吐温的作品就很经典,小时候很爱看
文章不错支持一下,非常喜欢
文章不错非常喜欢,支持