Object.prototype.isPrototypeOf()

La méthode isPrototypeOf() permet de tester si un objet fait partie de la chaîne de prototypes d'un autre objet.

Note : isPrototypeOf est différent de l'opérateur instanceof. Dans l'expression « object instanceof AFunction », on compare la chaîne de prototypes d'object avec AFunction.prototype et non avec AFunction.

Syntaxe

prototypeObj.isPrototypeOf(obj)

Paramètres

prototypeObj
Un objet dont on souhaite savoir s'il fait partie de la chaîne de prototype de l'argument  obj.
obj
L'objet pour lequel parcourir la chaîne de prototypes.

Description

La méthode isPrototypeOf permet de vérifier si un objet est présent au sein de la chaîne de prototypes d'un autre objet.

Par exemple, si on a la chaîne suivante :

function Fee() {
  // ...
}

function Fi() {
  // ...
}
Fi.prototype = new Fee();

function Fo() {
  // ...
}
Fo.prototype = new Fi();

function Fum() {
  // ...
}
Fum.prototype = new Fo();

Si, plus tard, on instancie Fum et qu'on souhaite savoir si le prototype de Fi existe dans la chaîne de prototypes de Fum, on peut utiliser le code suivant :

var fum = new Fum();
// ...

if (Fi.prototype.isPrototypeOf(fum)) {
  // faire quelque chose
}

Cette méthode, ainsi que l'opérateur instanceof, peut s'avérer utile lorsqu'on souhaite utiliser du code qui ne fonctionnerait qu'avec un objet qui descend d'une certaine chaîne de prototypes, ce qui permet de s'assurer qu'il possède les propriétés ou méthodes nécessaires.

Spécifications

Spécification Statut Commentaires
ECMAScript 3rd Edition (ECMA-262) Standard Définition initiale.
ECMAScript 5.1 (ECMA-262)
La définition de 'Object.prototype.hasOwnProperty' dans cette spécification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Object.prototype.hasOwnProperty' dans cette spécification.
Standard  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple (Oui) (Oui) (Oui) (Oui) (Oui)
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, darul75, teoli, Jeremie, fscholz, BenoitL
Dernière mise à jour par : SphinxKnight,