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.
- Reflect.apply(objetivo, este argumento, lista de argumentos)
- Reflect.construct(target, argumentsList[, newTarget])
- Reflect.defineProperty(objetivo, clave de propiedad, atributos)
- Reflect.deleteProperty(objetivo, clave de propiedad)
- Reflect.get(objetivo, clave de propiedad[, receptor])
- Reflect.getOwnPropertyDescriptor(objetivo, clave de propiedad)
- Reflect.getPrototypeOf(objetivo)
- Reflect.has(objetivo, clave de propiedad)
- Reflect.isExtensible(objetivo)
- Reflect.ownKeys(objetivo)
- Reflect.preventExtensions(objetivo)
- Reflect.set(objetivo, clave de propiedad, valor[, receptor])
- 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