Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

89
Vistas
Propiedad Symbol.hasInstance trabajando en JS

Entiendo que la propiedad Symbol.hasInstance se puede personalizar para verificar si un objeto es una instancia de una clase en particular. Pero lo que no entiendo es cómo funciona esto. Ejemplo:

 class Animal { static [Symbol.hasInstance](obj){ // how is this obj being passes here on calling the function below if(obj.isAnimal) return true } } const a1 = new Animal(); console.log(a1 instanceOf Animal) // false a1.isAnimal = true console.log(a1 instanceOf Animal) // true

Pregunta : ¿Cómo se pasa obj a la función estática al llamar a una a1 instanceOf Animal

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Muchas veces se puede llamar a una función incluso si no hay nada en el código que lo haga explícitamente con () después del nombre de la propiedad. Por ejemplo, con iteradores:

 class C { *[Symbol.iterator]() { for (let i = 0; i < 3; i++) yield i; } } const c = new C(); for (const item of c) { console.log(item); }

Y escriba coerción:

 const obj = { toString: () => 'some obj' }; console.log(String(obj));

y apoderados.

 const prox = new Proxy({}, { has() { console.log('has invoked'); return true; } }); console.log('foo' in prox);

instanceof es solo otra de estas circunstancias.

x instanceof y se especifica para extraer primero el valor en el símbolo hasInstance de y , si existe tal valor:

  1. Sea instOfHandler ? GetMethod(objetivo, @@hasInstance).

y luego será invocado con x . Si el valor no existe, se llamará a OrdinaryHasInstance con x e y en su lugar. Eso es todo lo que hay que hacer: instanceof , por definición, buscará e intentará llamar a una propiedad Symbol.hasInstance si la hay.

Para casi todos los operadores, puede pensar en x someOperator y como invocando someOperator con x e y , y el operador a menudo hace una serie de cosas con los operandos detrás de escena.

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda