ES6 - 反射 API


ES6 引入了围绕元编程的新功能,其中涉及检查或修改程序的结构,或更改语言本身的工作方式。

以下是元编程的三种形式 -

  • 内省- 内省意味着程序收集有关自身的信息。用于自省的 JavaScript 运算符的一些示例包括typeof、instanceof等。

  • 自修改- 自修改是指在运行时修改程序的结构。它涉及在运行时访问或创建新属性。换句话说,自修改是指某些代码修改自身。

  • 调解- 是指修改编程语言的默认Behave的代码。调解涉及修改编程语言的语义或在运行时向程序添加新的结构。

ES6引入了Reflect应用程序编程接口(Reflect API)和支持元编程的Proxy API。

使用 Reflect API 进行元编程

ES6 中的 Reflect API 允许我们在运行时检查或修改程序的类、对象、属性和方法。Reflect API 提供了全局 Reflect 对象该对象具有可用于内省的静态方法。这些方法用于发现有关代码的低级信息。Reflect API 可用于构建在运行时检查和内省程序的自动化测试框架。

下面给出了 Reflect 对象的一些常用方法 -

先生编号 方法及说明
1 反射.apply()

使用 args 参数指定的参数调用目标函数

2 反射.construct()

相当于调用一个类的 new target(...args) 对象

3 反射.get()

返回属性值的函数。

4 反射.set()

为属性赋值的函数。如果更新成功,则返回 true 的布尔值。

5 反射.has()

in 运算符作为函数。返回一个布尔值,指示是否存在自己的属性或继承的属性。