Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

211
Visualizações
¿Cómo funciona el intérprete de javascript en las clases?

Tengo este código js, cuando se ejecuta el "clic del usuario" se imprime de manera efectiva, pero se produce un error al intentar ejecutar funA:

app.js:13 TypeError no detectado: this.funA no es una función en HTMLBodyElement.handleclick (app.js:13:14)

Supongo que el intérprete aún no ha leído la función funA en el momento de ejecutar handleclick. Qué sucede aquí y cómo podría resolver esto.

 class UI { constructor() { this.body = document.querySelector("body") this.body.onclick = this.handleclick } funA() { console.log("called funA") } handleclick(e) { console.log("user clicked") this.funA() } } new UI()
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Cuando establece la función de esa manera, el elemento del cuerpo tiene el contexto de this .

Guarde el contexto de this con la función .bind

 class UI { constructor() { this.body = document.querySelector("body") this.body.onclick = this.handleclick.bind(this); } funA() { console.log("called funA") } handleclick(e) { console.log("user clicked") this.funA() } } new UI()
 body { width: 100%; height: 100vh; }
 <p>lorem ipsum</p>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda