概述
Reflect
对象与 Proxy
对象一样, 也是 ES6 为了操作对象而提供的新 API, Reflect
对象的设计目的有这样几个:
将
Object
对象的一些明显属于语言内部的语法(比如Object.defineProperty
) 放到Reflect
对象上. 也就是说, 可以从Reflect
对象上拿到语言内部的方法.修改某些
Object
方法的返回结果, 让其变得更合理. 比如Object.defineProperty(obj, name, desc)
在无法定义属性时, 会抛出一个错误, 而Reflect.defineProterty(obj,name, desc)
则返回 false