proxy:代理
扩展(增强)对象一些功能
比如:
Vue
Vue.config.keyCodes.enter = 65
Proxy作用:比如vue中拦截
预警、上报、扩展功能、统计、增强对象等等
proxy是设计模式的一种,代理模式
语法:
new Proxy(target,handler)
let obj = new Proxy(被代理的对象,对代理的对象做什么操作)
handler:{
set(){}, 设置的时候干的事情
get(){}, 获取要干的事情
deleteProperty(){}, 删除
has(){}, 问你有没有这个东西
apply(){}, 调用函数处理
}
Reflect:反射
Reflect.apply(调用的函数,this指向,参数数组)
通过Reflect对象身上直接拿到语言内部东西
"assign" in Object == Reflect.has(Object,"assign")
delete json.a == Reflect.deleteProperty(json,"a")