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)

  

 posted on 2018-04-13 09:57  Leifmin.Lin  阅读(172)  评论(0编辑  收藏  举报