Proxy 对象用于定义基本操作的自定义行为(例:属性查找)
共13种可代理操作、每种操作的代号(属性名、方法名)和触发这种操作的方式列举如下。注意,如果没有定义某种操作,那么这种操作会被妆发到目标对象身上。
参数traps 提供属性访问的方法,这类似于操作系统中陷阱的概念
target 代理虚拟化的对象。他通常用作代理的存储后端。
1.handel.get()在给代理对象的某个属性时触发该操作。
2.handler.get
方法用于拦截对象的读取属性操作。
3.以下情况会抛出错误a 如果要访问的目标舒心是不可写以及不可配置的,则返回的值必须与该目标属性的值相同
b.如果要访问的目标属性没有配置访问方法,即get方法是undefined的,则返回值必须为undefined
var obj = { a:2, b:1, } var p = new Proxy(obj,{ get:function(target,prop,receiver){ // console.log(this)//this是当前对象 // console.log(target)//taiget是当前被搜索的对象 // console.log(prop)//prop是对象被查找的key值 // receiver就是Proxy实例 if(prop in target){ return target[prop] }else{ return '还未定义的值'; } } }) console.log(p.eee)