Reflect


上次更新时间:11/2/2020, 8:30:38 PM 0

Reflect 是 ES6 为了操作对象而提供的新 API,它是 Proxy 的最佳搭档,Api都是一一对应的。

# 作用

Reflect 的作用:

  • 和 Proxy 能力一一对应
  • 规范化、标准化、函数化
  • 替代 Object 上的工具函数

# 静态方法

Reflect对象一共有 13 个静态方法。这13个方法大部分跟 Object 的方法相同,并且这些方法跟 proxy 的拦截方法是一一对应的,并且作用也是相同的。

  • Reflect.get(target, name, receiver):获取属性
  • Reflect.set(target, name, value, receiver):设置属性,成功则返回true
  • Reflect.has(target, name):是否存在属性,相当于 in 操作
  • Reflect.defineProperty(target, name, desc):添加属性并指定配置
  • Reflect.deleteProperty(target, name):删除属性,相当于 delete 操作
  • Reflect.ownKeys(target):返回一个包含所有自身属性(不包含继承属性)的数组
  • Reflect.getOwnPropertyDescriptor(target, name):查看属性描述对象
  • Reflect.getPrototypeOf(target): 返回指定对象的原型对象
  • Reflect.setPrototypeOf(target, prototype):设置对象的原型
  • Reflect.isExtensible(target):检测是否可拓展
  • Reflect.preventExtensions(target):不允许对象本身拓展
  • Reflect.apply(target, thisArgument, argumentList):对函数进行调用,类似apply()
  • Reflect.construct(target, argumentList):对构造函数进行 new 操作
上次更新时间: 11/2/2020, 8:30:38 PM