Cuando tengo un código que necesito ejecutar más de una vez, lo cierro en una función para que no tenga que repetirlo. A veces, además, hay una necesidad de ejecutar este código inicialmente en la carga de la página. Ahora mismo lo hago de esta manera:¿Cómo llamar a una función autoejecutable en JavaScript?
function foo() {
alert('hello');
}
foo();
yo prefiero hacerlo de esta manera:
(function foo() {
alert('hello');
})();
El problema es que esto sólo se ejecutará al cargar la página, pero si trato de llamarlo tiempos posteriores usando foo()
no funcionará.
Supongo que se trata de un problema de alcance, pero ¿hay alguna forma de que las funciones autoejecutables funcionen al recibir una llamada más tarde?
No estoy seguro si esto es la mejor manera de hacerlo. Me imagino que esto se pondrá realmente complicado después de un tiempo. – Hassan
Posible duplicado de http://stackoverflow.com/questions/6211466/call-immediately-executing-function-from-outside. – apsillers
También posible duplicado de http://stackoverflow.com/questions/6404196/can-i-name-a-javascript-function-and-execute-it-immediately (que tiene mejores respuestas, en mi humilde opinión, pero la redacción de la pregunta es una coincidencia menos exacta). – apsillers