Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Symbol.hasInstance

Este artigo necessita de uma revisão editorial. Como pode ajudar.

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

Property attributes of Symbol.hasInstance
Writable no
Enumerable no
Configurable no

Exemplos

Tu podes implementar o comportamento customizado do seu instanceof deste jeito; por exemplo:

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 Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Symbol.hasInstance' in that specification.
Standard Initial definition.
ECMAScript 2017 Draft (ECMA-262)
The definition of 'Symbol.hasInstance' in that specification.
Draft  

Compatibilidade com os navegadores

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 51 50 (50) No support ? ?
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? ? 50.0 (50) No support ? ?

Veja também

Etiquetas do documento e colaboradores

Etiquetas: 
 Colaboradores para esta página: GoToLoop
 Última atualização por: GoToLoop,