# Proxy and Reflect
TIP
Proxy在目标对象前架设拦截层、外界对该对象的访问只能通过拦截层访问 Reflect 让Object操作都变成函数行为并且携带参数合法
# Proxy
const obj = new Proxy({},{ //target , handler
name: 'lee',
get : function(target, key, receiver){
return Reflect.get(target, key, receiver) // or anything else
},
set : function(target, key, value, receiver){
return Reflect.set(target, key, value, receiver) // or anything else
},
apply: function(...){...},
...
})
const yiki = new Proxy({},{ //target , handler
get : function(target, key, receiver){
return 18
}
})
// then always yiki.[anything] = 18
// yiki.name = lee
# Reflect
Reflect.set
Reflect.get
Reflect.has
Reflect.apply
Reflect.constrct
etc
//‘assign' in Object
Reflect.has(Object, 'assign') // true
const yikiobj = {
food: 'balabal'
}
Reflect.get(yikiobj, 'food') //balabal