首页 > 其他 > 详细

【ES6】Reflect

时间:2020-02-09 14:52:48      阅读:83      评论:0      收藏:0      [点我收藏+]

Reflect

1.将Object对象的一些明显属于语言内部的方法放到该对象上。如Object.defineProperty()

2.修改某些Object方法的放回结果,让其更加合理。比如Object.defineProperty(obj,name,desc)在无法定义属性时,会跑出一个错误,而Reflect.defineProperty(obj.name.desc)则会放回false

3.让Object操作都变成函数行为。某些Object操作是命令式如in,delete,而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) {
      console.log(‘property ‘ + name + ‘ on ‘ + target + ‘ set to ‘ + value);
    }
    return success;
  }
});

详细方法查看:http://es6.ruanyifeng.com/#docs/reflect

【ES6】Reflect

原文:https://www.cnblogs.com/Mijiujs/p/12286613.html

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