Reflect.getPrototypeOf()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

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

const object1 = {
  property1: 42,
};

const proto1 = Reflect.getPrototypeOf(object1);

console.log(proto1);
// Expected output: Object {  }

console.log(Reflect.getPrototypeOf(proto1));
// Expected output: null

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® 2025 Language Specification
# sec-reflect.getprototypeof

Compatibilité des navigateurs

Voir aussi