ES6 - Reflect API
ES6 引入了有关元编程的新功能,包括检查或修改程序结构,或更改语言本身的工作方式。
以下是元编程的三种形式 −
自省 − 自省意味着程序收集有关自身的信息。用于自省的一些 JavaScript 运算符示例是 typeof、instanceof 等。
自我修改 − 自我修改是指在运行时修改程序的结构。它涉及在运行时访问或创建新属性。换句话说,自我修改是某些代码修改自身的时候。
调解 −指的是代码修改编程语言的默认行为。 调解涉及修改编程语言的语义或在运行时向程序添加新构造。
ES6 引入了支持元编程的 Reflect 应用程序编程接口 (Reflect API) 和代理 API。
使用 Reflect API 进行元编程
ES6 中的 Reflect API 允许我们在运行时检查或修改程序的类、对象、属性和方法。 Reflect API 提供了全局 Reflect 对象,该对象具有可用于自省的静态方法。 这些方法用于发现有关代码的低级信息。 Reflect API 可用于构建在运行时检查和自省程序的自动化测试框架。
下面给出了 Reflect 对象的一些常用方法 −
Sr.No | 方法 &描述 |
---|---|
1 |
Reflect.apply()
使用 args 参数指定的参数调用目标函数 |
2 |
Reflect.construct()
相当于调用类的新目标(...args)对象 |
3 |
Reflect.get()
返回属性值的函数。 |
4 |
Reflect.set()
为属性赋值的函数。如果更新成功,则返回布尔值,该值为 true。 |
5 |
Reflect.has()
in 运算符作为函数。返回布尔值,指示是否存在自有或继承的属性。 |