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