ES6 整理(二) ---- Proxy 和 Reflect

Proxy

Proxy 可以理解为监听器 , 拦截器, 可以修改对象原本的方法。可以通过构造函数的方法使用,也可以在对象内部定义为 Proxy 属性的方式来调用。

Proxy 两种使用方法

Proxy 传入两个参数,都是对象格式。 target 是被拦截的对象,handler 中盛放了拦截 target  的方法。如果被拦截的对象是一个空对象,那么在使用构造函数调用时候,可以用构造对象调用拦截方法会产生相同效果。

target为空对象情况

Reflect

Reflect 是一种新的 API ,将Object对象的属于语言内部的方法放到 Reflect 对象上,即从 Reflect 对象上拿 Object 对象内部方法。

将用老 Object 方法报错的情况,改为返回 false

让 Object 操作变成函数行为。

Reflect Proxy 有着一样的方法,两者可以相辅相成

图片引自阮一峰 ES6

这样的操作使得拦截操作更为合理,把拦截的操作交给 Reflect ,而 Proxy 的功能主要为输出日志。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容