美文网首页
ES6 Reflect

ES6 Reflect

作者: 萘小蒽 | 来源:发表于2019-06-27 12:16 被阅读0次

Reflect对象与Proxy对象一样也是ES6为了操作对象而提供的心API。

Reflect对象设计目的:

1. 将Object对象的一些明显属于语言层面的方法放到Reflect对象上。

现阶段,一些方法在ObjectReflect对象上同时部署,未来的新方法将只部署在Reflect上。

2. 修改某些Object方法的返回结果,让其变得更合理。

比如Object.difineProperty(target,propertyKey,attr)在无法定义属性时会抛出一个错误,
Reflect.difineProperty(target,propertyKey,attr)返回false

3. 让Object的操作都变成函数行为。

某些Object操作是命令式,比如name in objdelete,而Reflect.has(obj,name)Reflect.deleteProperty(obj,name)让它们变成函数行为。

4. Reflect对象方法与Proxy对象方法一一对应,只是要是Proxy对象方法,就能在Reflect对象上找到对应的方法。让Proxy对象可以方便的调用对应的Reflect方法完成默认行为,作为修改行为的基础。

不管Proxy如何修改默认行为,总能在Reflect上获取默认行为。

Proxy(target,{
   set:function(target,name,value,receiver){
    var success = Reflect.set(target,name,value,receiver);
     if(success){
       log('property'+name+'on'+target+'set to ' + value)
     }
    return success;
   }
})

上面代码中,Proxy方法拦截了target对象的属性赋值行为。采用Reflect.set方法赋值给对象的属性,然后在部署额外的功能。

相关文章

  • ES6——Reflect 与 Proxy

    ES6 之 Proxy 介绍深入实践 ES6 Proxy & Reflect 1.Proxy Proxy 可以对目...

  • ES6标准入门读书笔记12(Reflect)未完待续

    概述 § ⇧ Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect...

  • Reflect

    概述 § ⇧ Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect...

  • Reflect 对象

    Reflect 对象与 Proxy 对象一样,也是 ES6 为了操作对象而提供的新的API。Reflect 对象的...

  • ts + reflect 编程, 实现 类 spring bo

    es6 提供了 reflect api, es7 的 提供有装饰器。 我们可以尝试用装饰器 + reflect 实...

  • ES6 Reflect

    一、概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象...

  • Reflect对象

    Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的...

  • Reflect用法详解

    概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设...

  • ES6 Reflect

    Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的...

  • ES6 - Reflect

    Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API Reflect对象的设计目的...

网友评论

      本文标题:ES6 Reflect

      本文链接:https://www.haomeiwen.com/subject/ngohcctx.html