--- title: Symbol.hasInstance slug: Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance tags: - ECMAScript 2015 - JavaScript - Propriété - Reference - Symbol translation_of: Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance original_slug: Web/JavaScript/Reference/Objets_globaux/Symbol/hasInstance ---
Le symbole « connu » Symbol.hasInstance
est utilisé afin de déterminer si un objet constructeur reconnaît un objet comme une de ses instances. On peut donc adapter/personnaliser le comportement de l'opérateur {{jsxref("Opérateurs/instanceof", "instanceof")}} grâce à ce symbole.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
On peut implémenter un comportement différent pour instanceof
de cette façon :
class MonArray { static [Symbol.hasInstance](instance) { return Array.isArray(instance); } } console.log([] instanceof MonArray); // true
Spécification | État | Commentaires |
---|---|---|
{{SpecName('ES2015', '#sec-symbol.hasinstance', 'Symbol.hasInstance')}} | {{Spec2('ES2015')}} | Définition initiale. |
{{SpecName('ESDraft', '#sec-symbol.hasinstance', 'Symbol.hasInstance')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.Symbol.hasInstance")}}