JavaScript 反射方法
Reflect是一个内置的 JavaScript 对象,它可以访问其他可拦截操作的方法。 JavaScript Reflect 方法与代理处理程序的方法相同,并且与 Math 对象一样是静态的。因为它不是 JavaScript函数对象,所以它是不可构造的。它不能与 JavaScript new运算符一起使用,也不能作为函数调用。
静态方法: JavaScript Reflect 对象提供了以下静态方法。
- Reflect.apply(target, thisArgument, argumentsList)
- Reflect.construct(target, argumentsList[, newTarget])
- Reflect.defineProperty(target, propertyKey, attributes)
- Reflect.deleteProperty(target, propertyKey)
- Reflect.get(target, propertyKey[, receiver])
- Reflect.getOwnPropertyDescriptor(target, propertyKey)
- Reflect.getPrototypeOf(目标)
- Reflect.has(target, propertyKey)
- Reflect.isExtensible(目标)
- Reflect.ownKeys(目标)
- Reflect.preventExtensions(目标)
- Reflect.set(target, propertyKey, value[, receiver])
- Reflect.setPrototypeOf(目标,原型)
下面是 JavaScript Reflect 对象方法的示例。
示例 1:以下示例 演示Reflect.has(target, propertyKey)方法,如果目标参数具有属性,则返回布尔值。
HTML
HTML
HTML
HTML
输出 :
car object has 'color' property : true
car object has 'haircut' property : false
示例 2:以下示例 演示Reflect.ownKeys(target) 方法,该方法返回目标参数自己的属性键的数组。
HTML
输出 :
All the keys of the object 'car': (3)
["name", "color", "model"]
示例 3:以下示例演示了Reflect.set(target, propertyKey, value[, receiver])方法,该方法将值分配给返回true布尔值的属性。如果Reflect.set成功,则返回true ,否则返回false 。
HTML
输出 :
Insert key : 'airbags' to the object 'car': (3)
["name", "color", "model"]
{name: "Maruti", color: "white", model: "2019"}
示例 4:以下示例演示了 Reflect.apply(target, thisArgument, argumentsList)包含一个带有argumentsList参数的目标函数。
HTML
输出 :
geeks
3
4
o