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

185
Visualizações
¿Cómo pasar objetos a funciones en javascript entre diferentes eventos de clic?

¿Por qué este código indica que las propiedades de mi objeto no están definidas?

 document.getElementById("mkObj").addEventListener('click', () => { var globalDragon = mkObj(document.getElementById("cn").value, parseInt(document.getElementById("ch").value), document.getElementById("cl").value); document.getElementById("hit").addEventListener('click', (globalDragon) => { hit(globalDragon, 25); printObjDetails(globalDragon); }); document.getElementById("details").addEventListener('click', (globalDragon) => { let dragon_here = globalDragon; printObjDetails(dragon_here); }); });

¿Por qué no puedo simplemente crear el objeto Dragon haciendo clic en el botón mkObj y luego hacer clic en el botón de acción o en el botón de detalles y hacer que muestre el estado del objeto? ¿Por qué muestra que globalDragon.name no está definido?

Tenía el código con este aspecto antes y tampoco funcionó, así que simplemente hago que todo esté dentro del alcance del clic de mkObj, pensando que eso resolvería el problema, pero no fue así:

 document.getElementById("mkObj").addEventListener('click', ()=>{ var globalDragon = mkObj( document.getElementById("cn").value, parseInt( document.getElementById("ch").value), document.getElementById("cl").value ); }); document.getElementById("hit").addEventListener('click', (globalDragon)=>{ hit(globalDragon, 25); printObjDetails(globalDragon); }); document.getElementById("details").addEventListener('click', (globalDragon)=>{ let dragon_here = globalDragon; printObjDetails(dragon_here); });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que lo que realmente quieres es

 // declare the variable in the top scope, // so that all three click handlers can access it var globalDragon; document.getElementById("mkObj").addEventListener('click', () => { // write a new object into the global variable globalDragon = mkObj( document.getElementById("cn").value, parseInt( document.getElementById("ch").value), document.getElementById("cl").value ); }); document.getElementById("details").addEventListener('click', () => { // read from the global variable printObjDetails(globalDragon); }); document.getElementById("hit").addEventListener('click', () => { // modify the object hit(globalDragon, 25); printObjDetails(globalDragon); });

Observe cómo eliminé los parámetros de las funciones que también se llamaron globalDragon . A los controladores de eventos se les pasa un objeto de evento como sus argumentos.

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