Reflect.getPrototypeOf()

La méthode statique Reflect.getPrototypeOf() est semblable à la méthode Object.getPrototypeOf(). Elle renvoie le prototype (c'est-à-dire la valeur de la propriété interne [[Prototype]]) de l'objet donné.

Exemple interactif

Syntaxe

js
Reflect.getPrototypeOf(cible);

Paramètres

cible

L'objet cible dont on souhaite obtenir le prototype.

Valeur de retour

Le prototype de l'objet ou null s'il n'y a aucune propriété héritée.

Exceptions levées

Une erreur TypeError si cible n'est pas un Object.

Description

La méthode Reflect.getPrototypeOf renvoie le prototype (qui correspond en réalité à la valeur de la propriété interne [[Prototype]]) de l'objet passé en argument.

Exemples

Utiliser Reflect.getPrototypeOf()

js
Reflect.getPrototypeOf({}); // Object.prototype
Reflect.getPrototypeOf(Object.prototype); // null
Reflect.getPrototypeOf(Object.create(null)); // null

Comparaison avec Object.getPrototypeOf()

js
// Résultat identiques pour les objets
Object.getPrototypeOf({}); // Object.prototype
Reflect.getPrototypeOf({}); // Object.prototype

// Exception levée avec ES5 pour les valeurs qui ne sont pas des objets
Object.getPrototypeOf("toto"); // Throws TypeError
Reflect.getPrototypeOf("toto"); // Throws TypeError

// Avec ES2015 (ES6), seul Reflect lève une exception
// Object convertit automatiquement les valeurs en objets
Object.getPrototypeOf("toto"); // String.prototype
Reflect.getPrototypeOf("toto"); // Throws TypeError

// Pour obtenir le même effet qu'avec Object en ES2015, il
// faut ajouter une opération de conversion explicite
Reflect.getPrototypeOf(Object("toto")); // String.prototype

Spécifications

Specification
ECMAScript Language Specification
# sec-reflect.getprototypeof

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi