Métodos de reflejo de JavaScript

Reflect es un objeto JavaScript integrado que da acceso a otros métodos para operaciones interceptables. Los métodos JavaScript Reflect son los mismos que los de los controladores de proxy y son estáticos como el objeto Math . Como no es un objeto de función de JavaScript, no es construible. No se puede usar con el operador new de JavaScript y no se puede invocar como una función. 

Métodos estáticos: el objeto JavaScript Reflect proporciona los siguientes métodos estáticos.

  1. Reflect.apply(objetivo, este argumento, lista de argumentos)
  2. Reflect.construct(target, argumentsList[, newTarget])
  3. Reflect.defineProperty(objetivo, clave de propiedad, atributos)
  4. Reflect.deleteProperty(objetivo, clave de propiedad)
  5. Reflect.get(objetivo, clave de propiedad[, receptor])
  6. Reflect.getOwnPropertyDescriptor(objetivo, clave de propiedad)
  7. Reflect.getPrototypeOf(objetivo)
  8. Reflect.has(objetivo, clave de propiedad)
  9. Reflect.isExtensible(objetivo)
  10. Reflect.ownKeys(objetivo)
  11. Reflect.preventExtensions(objetivo)
  12. Reflect.set(objetivo, clave de propiedad, valor[, receptor])
  13. Reflect.setPrototypeOf(objetivo, prototipo)

A continuación, se muestran ejemplos de los métodos de objeto Reflect de JavaScript.

Ejemplo 1: El siguiente ejemplo demuestra el método Reflect.has(target, propertyKey) que r

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" 
        content="width=device-width, initial-scale=1.0" /> 
</head>
<body>
    
  <script type='text/javascript'>
  
    const car = {
      name: 'Maruti',
      color: 'white',
      model: '2019'
    }
  
    // If the target has the property, it returns a Boolean.    
    // It acts like the in operator in a function.
    console.log("car object has 'color' property :", 
                             Reflect.has(car, 'color'));
    console.log("car object has 'haircut' property :",
                             Reflect.has(car, 'haircut'));
  
  </script>
</body>
</html>

Producción :

car object has 'color' property : true
car object has 'haircut' property : false

Ejemplo 2: El siguiente ejemplo demuestra el método Reflect.ownKeys(target) que devuelve

HTML

<!DOCTYPE html>
<html lang="en">
  
<head>
  
  <meta charset="UTF-8" />
  <meta name="viewport" 
   content="width=device-width, initial-scale=1.0" /> 
</head>
<body>
   <script type='text/javascript'>
  
    const car = {
      name: 'Maruti',
      color: 'white',
      model: '2019'
    }
  
    // It returns an array of the target's
    // own property keys.
    console.log("All the keys of the object 'car':", 
                                   Reflect.ownKeys(car));
  </script>
</body>
</html>

Producción :

All the keys of the object 'car': (3)
["name", "color", "model"]

Ejemplo 3: El siguiente ejemplo demuestra el método Reflect.set (target, propertyKey, value[, receiver])

HTML

<!DOCTYPE html>
<html lang="en">
  
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" 
      content="width=device-width, initial-scale=1.0" /> 
</head>
<body>
    
  <script type='text/javascript'>
  
    const car = {
      name: 'Maruti',
      color: 'white',
      model: '2019'
    }
  
    // It assigns values to properties. 
    // It returns true if the set or update is successful.
    console.log("Insert key : 'airbags' to the object 'car':", 
                             Reflect.ownKeys(car, 'airbags', 3));
    console.log(car);
  </script>
</body>
  
</html>

Producción : 

Insert key : 'airbags' to the object 'car': (3)
["name", "color", "model"]
{name: "Maruti", color: "white", model: "2019"}

Ejemplo 4: El siguiente ejemplo demuestra Reflect.apply(target, thisArgument, argumentsList) que ctarget argumentsList

HTML

<!DOCTYPE html>
<html lang="en">
  
<head>
  
  <meta charset="UTF-8" />
  <meta name="viewport" 
      content="width=device-width, initial-scale=1.0" /> 
   
</head>
  
<body>
   <script type='text/javascript'>
      
    // It calls a target function with the 
    // argumentsList as parameter.
    console.log(Reflect.apply(String.fromCharCode, 
                   undefined, [103, 101, 101, 107, 115]));
     
    console.log(Reflect.apply(Math.floor, undefined, [3.14]));
     
    console.log(Reflect.apply(RegExp.prototype.exec, /ab/, 
                                    ['confabulation']).index);
    
    console.log(Reflect.apply(''.charAt, 'geeksforgeeks', [6]));
     
  </script>
</body>
  
</html>

Producción : 

geeks
3
4
o

Publicación traducida automáticamente

Artículo escrito por jt9999709701 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *