# 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
Last Updated: 2022/6/26 上午11:43:14