首页 > 其他 > 详细

ES6(Proxy 和 Reflect)

时间:2018-04-29 23:50:29      阅读:338      评论:0      收藏:0      [点我收藏+]

Proxy 和 Reflect

1.Proxy 和 Reflect 的概念

Proxy 意为 ‘代理’,连接了用户和真实对象之间的一个层

Reflect 意为‘反射’   反射的是Object

2.适用场景

 

一、Proxy 语法

1.类似于供应商的原始对象 obj ,通过 Proxy 新生成对象,这个对象是映射 Object 的,用户访问 monitor,

通过 Proxy ,再传递给 obj 对象。

技术分享图片

2.设置最简单的代理操作(拦截读取作用)

技术分享图片技术分享图片

真实的为 2017-03-11,通过‘代理’的作用,将 2017 替换为 2018.

 3.设置属性

技术分享图片

技术分享图片

只能修改 name 属性(target 为要修改的对象,key为要修改的属性,value为修改为何值)

技术分享图片

技术分享图片

此时 name 值已经发生改变

4.判断当前对象是否有某个属性

技术分享图片

技术分享图片

技术分享图片

只判断 name 属性是否存在

5.删除

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

如果属性是 ‘_‘ 开头的,则删除

 6.遍历

技术分享图片

技术分享图片

技术分享图片

(保护 time 属性)

二、Reflect 语法

1.读取对象属性

技术分享图片

技术分享图片

set

 技术分享图片

技术分享图片

has

技术分享图片技术分享图片

 

三、实际应用

 1.判断格式是否正确(校验)

 技术分享图片

过滤(校验)条件

技术分享图片

对象

技术分享图片

输出结果

技术分享图片

技术分享图片

 

部分属性做修改

技术分享图片

技术分享图片

之所以报错,是因为最后构造函数的返回对象的不是 this ,返回的是对 this 的代理

技术分享图片

技术分享图片

这就是 Proxy 代理的作用,好处是将 条件 和 对象 隔离开,利于后期代码维护

ES6(Proxy 和 Reflect)

原文:https://www.cnblogs.com/jianghao233/p/8972253.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!