Baseline Widely available
El sÃmbolo conocido como Symbol.hasInstance
se utiliza para determinar si un objeto constructor reconoce un objeto como su instancia. El comportamiento del operador instanceof
puede personalizarse mediante este sÃmbolo.
class Array1 {
static [Symbol.hasInstance](instance) {
return Array.isArray(instance);
}
}
console.log([] instanceof Array1);
// Expected output: true
Sobrescribir No Numerable No Configurable No Ejemplos Comportamiento de instanceof personalizado
PodrÃas personalizar el comportamiento de instanceof
de la siguiente manera, por ejemplo:
class MyArray {
static [Symbol.hasInstance](instance) {
return Array.isArray(instance);
}
}
console.log([] instanceof MyArray); // true
function MyArray() {}
Object.defineProperty(MyArray, Symbol.hasInstance, {
value: function (instance) {
return Array.isArray(instance);
},
});
console.log([] instanceof MyArray); // true
Comprobación de la instancia de un objeto
De la misma manera que se puede comprobar si un objeto es una instancia de una clase utilizando la palabra clave instanceof
, también podemos utilizar Symbol.hasInstance
para dichas comprobaciones.
class Animal {
constructor() {}
}
const cat = new Animal();
console.log(Animal[Symbol.hasInstance](cat)); // true
Especificaciones Compatibilidad con navegadores Véase también
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