Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Object.prototype.isPrototypeOf()
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthodeisPrototypeOf() permet de tester si un objet existe dans la chaîne de prototypes d'un autre objet.
Dans cet article
Exemple interactif
function Foo() {}function Bar() {}Bar.prototype = Object.create(Foo.prototype);const bar = new Bar();console.log(Foo.prototype.isPrototypeOf(bar));// Expected output: trueconsole.log(Bar.prototype.isPrototypeOf(bar));// Expected output: trueNote :isPrototypeOf() est différent de l'opérateurinstanceof. Dans l'expression "object instanceof AFunction", on compare la chaîne de prototypes d'object avecAFunction.prototype et non avecAFunction.
Syntaxe
prototypeObj.isPrototypeOf(objet);Paramètres
objetL'objet dont la chaîne de prototypes sera parcourue.
Valeur de retour
UnBoolean indiquant si l'objet appelant se trouve dans sa chaîne de prototypes de l'objet indiqué.
Erreurs déclenchées
Description
La méthode isPrototypeOf () vous permet de vérifier si un objet existe ou non dans la chaîne de prototypes d'un autre objet.
Exemples
Cet exemple montre queBidule.prototype,Truc.prototype,Machin.prototype etObject.prototype font bien partie de la chaîne de prototype pour l'objetbidule :
function Machin() {}function Truc() {}function Bidule() {}Truc.prototype = Object.create(Machin.prototype);Bidule.prototype = Object.create(Truc.prototype);var bidule = new Bidule();console.log(Bidule.prototype.isPrototypeOf(bidule)); // trueconsole.log(Truc.prototype.isPrototypeOf(bidule)); // trueconsole.log(Machin.prototype.isPrototypeOf(bidule)); // trueconsole.log(Object.prototype.isPrototypeOf(bidule)); // trueLa méthodeisPrototypeOf(), avec l'opérateurinstanceof en particulier, s'avère particulièrement utile si vous avez du code qui ne peut fonctionner que lorsqu'il traite des objets descendant d'une chaîne de prototypes donnée, par ex., pour garantir que certaines méthodes ou propriétés seront présentes dans cet objet.
Par exemple, vérifier quebidule descend bien deMachin.prototype :
if (Toto.prototype.isPrototypeOf(bidule)) { // effectuer quelque chose de sûr}Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.prototype.isprototypeof> |