Baseline Widely available
La méthode isPrototypeOf()
permet de tester si un objet existe dans la chaîne de prototypes d'un autre objet.
function Foo() {}
function Bar() {}
Bar.prototype = Object.create(Foo.prototype);
const bar = new Bar();
console.log(Foo.prototype.isPrototypeOf(bar));
// Expected output: true
console.log(Bar.prototype.isPrototypeOf(bar));
// Expected output: true
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
.
prototypeObj.isPrototypeOf(objet);
Paramètres
objet
L'objet dont la chaîne de prototypes sera parcourue.
Un Boolean
indiquant si l'objet appelant se trouve dans sa chaîne de prototypes de l'objet indiqué.
TypeError
Une exception TypeError
est déclenchée si prototypeObj
est undefined
ou null
.
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.
ExemplesCet exemple montre que Bidule.prototype
, Truc.prototype
, Machin.prototype
et Object.prototype
font bien partie de la chaîne de prototype pour l'objet bidule
:
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)); // true
console.log(Truc.prototype.isPrototypeOf(bidule)); // true
console.log(Machin.prototype.isPrototypeOf(bidule)); // true
console.log(Object.prototype.isPrototypeOf(bidule)); // true
La méthode isPrototypeOf()
, avec l'opérateur instanceof
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 que bidule
descend bien de Machin.prototype
:
if (Toto.prototype.isPrototypeOf(bidule)) {
// effectuer quelque chose de sûr
}
Spécifications Compatibilité des navigateurs Voir aussi
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4