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

233
Vistas
Función simple de JavaScript (e)

¿Alguien puede explicarme por qué la función no funciona cuando no hay argumentos entre paréntesis? Me refiero exactamente a "botón" y "e". Me parece que, dado que se escribe una función para cada elemento "btns", debería referirse automáticamente a él.

 const btns = document.querySelectorAll('.question-btn'); btns.forEach(function(button){ button.addEventListener('click', function(e){ const question = e.currentTarget.parentElement.parentElement; question.classList.toggle('show-text'); }) });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si quiere decir que no entiende por qué necesita el button y e en las listas de parámetros y no puede simplemente tener:

 const btns = document.querySelectorAll('.question-btn'); btns.forEach(function(/*no `button` here*/){ ???.addEventListener('click', function(/*no `e` here*/){ const question = ???.currentTarget.parentElement.parentElement; question.classList.toggle('show-text'); }) });

...entonces la respuesta es ??? en lo anterior. El parámetro del button es cómo el código de devolución de llamada forEach puede referirse al botón específico que está siendo manejado por esa llamada a la devolución de llamada forEach (el botón que forEach pasó como argumento¹ a la devolución de llamada al llamarlo); sin él, no tiene nada con qué trabajar. De manera similar, el parámetro e es cómo el código del controlador de eventos puede referirse al evento que está manejando (el argumento de evento con el que el sistema de eventos en el navegador llamó a la función).

Esto es lo que puede ser un ejemplo más simple del botón:

 function setUpHandler(button) { button.addEventListener("click", function() { console.log("Clicked!"); }); } const btn1 = document.getElementById("btn1"); setUpHandler(btn1); const btn2 = document.getElementById("btn2"); setUpHandler(btn2);
 <input type="button" class="question-btn" id="btn1" value="Button 1"> <input type="button" class="question-btn" id="btn2" value="Button 2">

Las dos llamadas a setUpButton son como las dos llamadas que forEach le haría si hiciéramos esto (excepto que forEach también pasaría más argumentos [el índice y la lista] que setUpHandler simplemente ignora porque no declara parámetros para recibirlos en) :

 document.querySelectorAll(".question-btn").forEach(setUpHandler);

El button en setUpHandler es el parámetro en el que la función recibe ese primer argumento .


¹ Solo una nota rápida sobre los términos "parámetro" y "argumento" ya que aparecieron arriba:

 function add(a, b) { // ^−−^−−−−−−−−−−−−−−− "parameters" return a + b; } const sum = add(1, 2) // ^−−^−−−−−−−−−−−− "arguments" console.log(sum);

Un parámetro es la cosa con nombre (como una variable) que usa una función para referirse al argumento que se le pasa cuando se llama. En lo anterior, los parámetros son a y b . Los argumentos son los valores 1 y 2 . (Y también le pasamos a console.log un argumento: sum ).

about 4 years ago · Juan Pablo Isaza 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