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

165
Visualizações
¿Cómo se incrementa exactamente el conteo con cada clic de botón aquí?

Me encantaría entender cómo ocurre exactamente el cierre en este conjunto de código y la forma en que se implementa. Estaba viendo un tutorial y el tipo estaba dando un ejemplo sobre la función de devolución de llamada y también dio un ejemplo de cierre allí.

 function attachEventListeners() { let count = 0 document.getElementById("clickMe").addEventListener("click", function () { console.log("Button Clicked", ++count) }) attachEventListeners()

Pensé que para que funcionara una función de conteo basada en cierres, tenía que devolver esa función y asignarla a una variable. Porque de lo contrario, con cada llamada de la función externa, la cuenta se inicializaría en 0. Pero, ¿cómo funciona aquí?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

El cierre es esencialmente un caso en el que una función dentro de otra función sale de su propio ámbito para capturar variables que están en el ámbito de la función exterior.

 function attachEventListeners() { let count = 0 document.getElementById("clickMe").addEventListener("click", function () { console.log("Button Clicked", ++count) })

En este ejemplo, la función anónima entregada al detector de eventos toma e incrementa el count de variables en el alcance de la función attachEventListeners .

about 4 years ago · Juan Pablo Isaza Relatório

0

Está devolviendo una nueva función al oyente cada vez, pero cada vez que está adjuntando un nuevo oyente al botón, lo cual es una tontería.

Agregue un oyente al botón. Llame al controlador que devolverá el cierre como la función que se llamará cuando se despida el oyente.

 const button = document.getElementById('clickMe'); // Call the handler that returns a function (your closure) // that acts as the the listener. It only needs to be called once. button.addEventListener('click', handler(), false); function handler() { let count = 0; // The closure contains, and updates, the variable in // its local environment when it's returned return function () { console.log('Button Clicked', ++count); }; };
 <button id="clickMe">Click me</button>

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