Reflect 是 ES6 中新增的一个内置对象,它提供了一组静态方法,用于操作对象。
这些方法与 Object 上的方法具有相同的功能。在这些方法中会调用对应 Object上 的方法,并且返回对应结果。Reflect 的出现主要是为了将一些 Object 对象上的方法转移到 Reflect 上,使得操作对象更加统一和易于理解。
通过这种方式,实现了对 Object 上方法的封装和统一。
静态方法
Reflect.apply(target, thisArg, args)
Reflect.construct(target, args)
Reflect.get(target, name, receiver)
Reflect.set(target, name, value, receiver)
Reflect.defineProperty(target, name, desc)
Reflect.deleteProperty(target, name)
Reflect.has(target, name)
Reflect.ownKeys(target)
Reflect.isExtensible(target)
Reflect.preventExtensions(target)
Reflect.getOwnPropertyDescriptor(target, name)
Reflect.getPrototypeOf(target)
Reflect.setPrototypeOf(target, prototype)
上面这些方法的作用,大部分与 Object 对象的同名方法的作用都是相同的,而且它与 Proxy 对象的方法是一一对应的