Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.

View in English Always switch to English

Symbol.hasInstance

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨abril de 2017⁩.

O symbol bem-conhecido Symbol.hasInstance é usado para determinar se um objeto construtor reconhece um objeto como de sua instância. O comportamento do operador instanceof pode ser customizado por este symbol.

Property attributes of Symbol.hasInstance
Writableno
Enumerableno
Configurableno

Exemplos

Você pode implementar o comportamento customizado do seu instanceof deste jeito; por exemplo:

js
class MyArray { static [Symbol.hasInstance](instance) { return this.prototype.isPrototypeOf(instance) || Array.isArray(instance); } } console.log([] instanceof MyArray); // true console.log(new MyArray() instanceof MyArray); // true console.log(new Image() instanceof MyArray); // false class MySubArray extends MyArray {} console.log(new MySubArray() instanceof MySubArray); // true console.log(new MySubArray() instanceof MyArray); // true console.log(new MyArray() instanceof MySubArray); // false 

Especificações

Specification
ECMAScript® 2026 Language Specification
# sec-symbol.hasinstance

Compatibilidade com navegadores

Veja também