proxy(代理)亦可理解为发言代表
syntax: const proxy = new Proxy(target, handle)
释义:proxy
是生成的发言代表,target
是需要被代表发言的对象,handle
是发言代表需要遵守的规则,也是一个对象。
先抛一个小例子,热热身:
const obj = {
a:1}
const handle = {
get: function(target, propKey){
return '我就不告诉你!'
}
}
const proxy = new Proxy(obj, handle)
proxy.a // "我就不告诉你!"
obj.a // 1
看,proxy(代理)可坏了,它得知并拦截了你访问obj的操作(get),还不好好回答你问题!当你见不到obj本人时,你从proxy那获取到的obj信息,其实是proxy的handle胡诌的答案,并不一定真实、有效!
参考阮一峰的《ES6入门》,代理能够拦截的操作有以下13种:
1. get(target, propKey, receiver)
拦截的操作:对象属性的读取,比如proxy.foo和proxy[‘foo’];
参数释义:
target
——目标对象