Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

263
Views
¿Por qué se debe escribir function () antes del nombre de la función cuando se usa onkeydown en javascript?

Soy bastante nuevo en javascript y estaba practicando un poco con eventos en W3Schools. En su tutorial, muestran esta línea de código:

 document.getElementById("demo").onkeydown = function() {myFunction()}; function myFunction() { document.getElementById("demo").style.backgroundColor = "red"; }

No entiendo por qué tiene que escribir function () {nombre de función ()} en lugar de simplemente escribir la función que está tratando de llamar. Básicamente, no entiendo la lógica detrás de esa línea de código. ¿Puede alguien explicarmelo?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

No necesita function , solo puede poner el nombre de la función allí.

 document.getElementById("demo").onkeydown = myFunction; function myFunction() { document.getElementById("demo").style.backgroundColor = "red"; }
 <input id="demo">

Tendría que envolverlo dentro de otra función si quisiera hacer algo más que simplemente llamar a la función directamente.

 document.getElementById("demo").onkeydown = function() { console.log("Keydown"); myFunction(); }; function myFunction() { document.getElementById("demo").style.backgroundColor = "red"; }
 <input id="demo">

about 4 years ago · Juan Pablo Isaza Report

0

Puedes hacerlo , debes pasarlo como referencia:

document.getElementById("demo").onkeydown = myFunction(); - myFunction se llamará inmediatamente y no como devolución de llamada. La devolución de llamada sería el valor de retorno de myFunction .

Les asignas como referencia:

document.getElementById("demo").onkeydown = myFunction - tenga en cuenta que aquí no puede pasar parámetros en tiempo de ejecución.

about 4 years ago · Juan Pablo Isaza Report

0

En el ejemplo que das:

 document.getElementById("demo").onkeydown = function() {myFunction()}; function myFunction() { document.getElementById("demo").style.backgroundColor = "red"; }

el valor de la propiedad onkeydown de un elemento debe ser una función, no una llamada a una función. Así que no podrías tener por ejemplo:

 document.getElementById("demo").onkeydown = myFunction();

Lo que eso haría sería intentar ejecutar myFunction y poner el resultado de eso en la propiedad onkeydown.

En realidad, fallaría ya que en el momento en que el sistema intentó ejecutarlo, esa función aún no existe.

Lo que podría hacer es declarar la función primero y luego usarla como valor para la asignación.

 function myFunction() { document.getElementById("demo").style.backgroundColor = "red"; } document.getElementById("demo").onkeydown = myFunction;
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!