JavaScript | Método Reflect.construct()

El método Reflect.construct() en JavaScript se usa para llamar a un nuevo destino. También da la opción añadida de especificar un prototipo diferente.
Sintaxis: 
 

Reflect.construct(target, argumentsList, newTarget)

Parámetros: Este método acepta tres parámetros como se mencionó anteriormente y se describe a continuación: 
 

  • target: este parámetro es la función de destino que se va a llamar.
  • ArgumentsList: este parámetro es un objeto similar a una array que especifica el argumento con el que se debe llamar al objetivo.
  • newTarget: Es un parámetro opcional. El constructor cuyo prototipo debe usarse.

Valor devuelto: este método devuelve una nueva instancia del objetivo.
Excepciones: un TypeError es una excepción dada como resultado, cuando el objetivo no es el constructor.
Los siguientes ejemplos ilustran el método Reflect.construct() en JavaScript:
Ejemplo 1: 
 

javascript

function func1(a, b, c) {
  this.sum = a + b + c;
}
 
const args = [1, 2, 3];
const object1 = new func1(...args);
const object2 = Reflect.construct(func1, args);
 
console.log(object2.sum);
 
console.log(object1.sum);
 
function func2(a, b, c) { 
  this.sum = a + b + c; 
} 
const args2 = [1, 4, 3]; 
const args3 = [1, 2, 3]; 
const object3 = new func1(...args); 
const object4 = Reflect.construct(func2, args2); 
console.log(object4.sum); 
console.log(object3.sum); 

Producción: 
 

6
6
8
6

Ejemplo 2: 
 

javascript

function OneClass() {
    this.name = 'one'
}
 
function OtherClass() {
    this.name = 'other'
}
const args=[1, 2, 3];
 
let obj1 = Reflect.construct(OneClass, args, OtherClass)
 
let obj2 = Object.create(OtherClass.prototype)
OneClass.apply(obj2, args)
 
console.log(obj1.name)
console.log(obj2.name) 
 
console.log(obj1 instanceof OneClass)
console.log(obj2 instanceof OneClass)
 
console.log(obj1 instanceof OtherClass)
console.log(obj2 instanceof OtherClass)

Producción: 
 

"one"
"one"
false
false
true
true

Navegadores compatibles: los navegadores compatibles con el método JavaScript Reflect.apply() se enumeran a continuación: 
 

  • Google Chrome 49 y superior
  • Borde 12 y superior
  • Firefox 42 y superior
  • Ópera 36 y superior
  • Safari 10 y superior

Publicación traducida automáticamente

Artículo escrito por SHUBHAMSINGH10 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 *