jj

82 阅读1分钟

一、代理Proxy
给目标对象封装一层拦截,外界访问必须先通过这层拦截
创建一个代理,参数1拦截的目标对象,参数2拦截行为
参数2如果是空对象,代理直接会调用目标对象
get方法用于拦截某个属性的读取操作
这里直接return,通过代理对象无论访问目标对象的任何属性都是fail
代理访问name为fail
如果想要代理对象公布出合适的信息,可以通过get()两个参数来实现
通过属性判断,可以获取目标对象属性的值,并且还可以各种操作,如验证、修改等
也可以通过set()方法来对代理对象的属性进行赋值,有三个参数
set还可以拦截某个属性的赋值操作
通过代理对象对属性赋值,目标对象属性也被更改
代理不是复制克隆目标对象,只是拦截目标对象更改默认行为
可以使用set()和get()方法,对目标对象的数据进行过滤和验证
代理对象中任何未公开或不存在的属性,可自定义返回内容
也可以阻止赋值的默认行为\