--- title: Symbol.hasInstance slug: Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance translation_of: Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance original_slug: Web/JavaScript/Referencia/Objetos_globales/Symbol/hasInstance ---
El bien conocido símbolo Symbol.hasInstance
es usado para determinar si un constructor reconoce un objeto como su instancia. El comportamiento del operador {{jsxref("Operators/instanceof", "instanceof")}} puede ser personalizado con este símbolo.
Usted puede implementar un comportamiento personalizado para el operador instanceof
tal que así:
class MyArray { static [Symbol.hasInstance](instance) { return Array.isArray(instance); } } console.log([] instanceof MyArray); // true
Specification | Status | Comment |
---|---|---|
{{SpecName('ES2015', '#sec-symbol.hasinstance', 'Symbol.hasInstance')}} | {{Spec2('ES2015')}} | Initial definition. |
{{SpecName('ESDraft', '#sec-symbol.hasinstance', 'Symbol.hasInstance')}} | {{Spec2('ESDraft')}} |
{{CompatibilityTable}}
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | {{CompatChrome(51)}} | {{CompatVersionUnknown}} | {{ CompatGeckoDesktop(50) }} | {{CompatNo}} | {{CompatUnknown}} | {{CompatUnknown}} |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatVersionUnknown}} | {{ CompatGeckoMobile(50) }} | {{CompatNo}} | {{CompatUnknown}} | {{CompatUnknown}} |