📜  JavaScript 反射方法

📅  最后修改于: 2022-05-13 01:56:38.325000             🧑  作者: Mango

JavaScript 反射方法

Reflect是一个内置的 JavaScript 对象,它可以访问其他可拦截操作的方法。 JavaScript Reflect 方法与代理处理程序的方法相同,并且与 Math 对象一样是静态的。因为它不是 JavaScript函数对象,所以它是不可构造的。它不能与 JavaScript new运算符一起使用,也不能作为函数调用。

静态方法: JavaScript Reflect 对象提供了以下静态方法。

  1. Reflect.apply(target, thisArgument, argumentsList)
  2. Reflect.construct(target, argumentsList[, newTarget])
  3. Reflect.defineProperty(target, propertyKey, attributes)
  4. Reflect.deleteProperty(target, propertyKey)
  5. Reflect.get(target, propertyKey[, receiver])
  6. Reflect.getOwnPropertyDescriptor(target, propertyKey)
  7. Reflect.getPrototypeOf(目标)
  8. Reflect.has(target, propertyKey)
  9. Reflect.isExtensible(目标)
  10. Reflect.ownKeys(目标)
  11. Reflect.preventExtensions(目标)
  12. Reflect.set(target, propertyKey, value[, receiver])
  13. 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