ES6 -- 最佳代理:Proxy

来源:互联网 发布:安卓手机vb6.0编程软件 编辑:程序博客网 时间:2024/05/16 11:07

Proxy可以修改对象的默认行为,例如,如果为某个对象设置了包含有get方法的Proxy对象,那么当访问对象的值的时候,要首先经过这个get方法。这样,开发者获得了对象代理的权限和方式;他人对于对象的访问,将是受到开发者的限制和控制的。

栗子:

var proxyObj = new Proxy({}, {  get: function (target, key, receiver) {    console.log(`getting the prop ${key}!`);    return 18;  },  set: function (target, key, value, receiver) {    console.log(`setting the prop ${key}!`);    return Reflect.set(target, key, value, receiver);  }});

上面这个代码为一个空对象设定了一个代理,重新定义了属性的get(读取)和set(设置)行为。

这样如果我们运行下面这段代码,得到的结果就会是:

proxyObj.age// getting age!// 18

总结一下上面的栗子,Proxy的基本语法是:

var proxy = new Proxy(target, handler);

其中target表示需要要代理方法的目标对象,handler用来定义需要代理的方法(例如上面栗子中的get和set方法)。

另外一个需要注意的就是,如果需要使用代理方法,必须对new Proxy返回的proxyObj进行操作,而不是对Proxy的参数target进行操作。

Proxy可以代理的方法有很多,如下所示:

1.get2.set3.has4.deleteProperty5.ownKeys6.getOwnPropertyDescriptor7.defineProperty8.preventExtensions9.getPrototypeOf10.isExtensible11.setPrototypeOf12.apply13.construct

关于这些方法的具体使用方法,可参见阮一峰大神博客。
Proxy代理方法精讲

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 身体爱出油衣服领子总爱脏怎么办 白色衣服衣领净洗后变红怎么办 棒球服衣领洗变形怎么办 挂盐水手肿了怎么办 衣服买大了肩宽怎么办 买来的衣服肩宽怎么办 素描揉擦之后的黑点怎么办 扭脖子响了一下怎么办 画的眼线容易掉怎么办 做完眼线后眼睛肿了怎么办 洗眼线眼睛肿了怎么办 眼线留眼泪总是爱花妆怎么办 戴眼镜眼球外凸怎么办 修眉后的眉渣怎么办 内眼线容易晕妆怎么办 手抖不会画眼线怎么办 画眼线眼睛总眨怎么办 画眼线总是晕妆怎么办 眼线笔没用完干了怎么办 新的眼线笔干了怎么办 不涂口红没气色怎么办 眼线笔容易晕妆怎么办 眼线笔老是晕妆怎么办 眼线液老是晕妆怎么办 旋转眼线笔断了怎么办 眼睛去皮以后眉眼距窄怎么办 速写型总是画不准怎么办 速写人物不会打形怎么办 鼻头又圆又大怎么办 耳鸣嘴溃疡眼流泪上火怎么办 孩子看电视总挤眼睛怎么办 小孩老是咳嗽有痰怎么办 长时间看手机眼睛模糊怎么办 长时间看电脑眼睛模糊怎么办 手机玩多了眼睛模糊怎么办 手机看多了眼睛模糊怎么办 孩子玩手机眼睛红怎么办 手机玩多了眼睛红怎么办 手机看久了眼花怎么办 玩手机眼睛近视了怎么办 近视了怎么办30个字