Reflect.construct()

La méthode statique Reflect.construct() agit comme l'opérateur new sous la forme d'une fonction. Elle est équivalente à new cible(...args).

Syntaxe

Reflect.construct(cible, listeArguments[, newCible])

Paramètres

cible
La fonction cible à appeler.
listeArguments
Un objet semblable à un tableau définissant les arguments à passer à cible lors de l'appel. Utiliser null ou undefined si aucun argument ne doit être fourni à la fonction.
newCible Facultatif
Le constructeur à utiliser. Voir également l'opérateur new.target. Si newCible n'est pas présent, c'est cible qui sera utilisé.

Valeur de retour

Un nouvelle instance de la cible indiquée, créée en l'appelant comme un constructeur (ou en appelant newCible si elle est fournie) avec les arguments fournis.

Exceptions levées

Une exception TypeError si cible ou newCible ne sont pas des constructeurs.

Description

Reflect.construct permet d'appeler un constructeur avec un nombre d'arguments variable (ce qui peut également être fait avec l'opérateur de décomposition et l'opérateur new).

var obj = new Toto(...args);
var obj = Reflect.construct(Toto, args);

Exemples

Utiliser Reflect.construct()

var d = Reflect.construct(Date, [1776, 6, 4]);
d instanceof Date; // true
d.getFullYear(); // 1776

Utiliser le paramètre newCible

Pour plus d'informations sur la création de sous-classes, voir les classes et l'opérateur new.target.

function unConstructeur() {}
var résultat = Reflect.construct(Array, [], unConstructeur);

Reflect.getPrototypeOf(résultat); // unConstructeur.prototype
Array.isArray(résultat); // true

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Reflect.construct' dans cette spécification.
Standard Définition initiale.
ECMAScript 2017 Draft (ECMA-262)
La définition de 'Reflect.construct' dans cette spécification.
Projet  

Compatibilité des navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Support simple 49 12 42 (42) Pas de support 36 10
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support 49 42.0 (42) Pas de support Pas de support 10

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,