Una función autoejecutable es una función en JavaScript que no necesita ser llamada para su ejecución, se ejecuta sola tan pronto como se crea en el archivo JavaScript. Esta función no tiene nombre y también se denomina función anónima. Esta función se inicializa dentro de un conjunto de corchetes y los parámetros se pueden pasar a través de los corchetes al final.
Sintaxis:
(function (parameters) { // Code block to be executed })(parameters);
Ejemplo:
HTML
<!DOCTYPE html> <html> <body> <h1 style="color: green"> GeeksforGeeks </h1> <b> What is a self-executive function? </b> <p> This page was generated on: <span class="output"></span> </p> <script type="text/javascript"> (function () { date = new Date().toString(); document.querySelector('.output').textContent = date; })(); </script> </body> </html>
Producción:
Nombrar funciones anónimas: Podemos asignar un nombre a una función autoejecutable con la siguiente sintaxis. Esto se puede usar para llamar a la función en el futuro.
Sintaxis:
(function_name = function (parameters) { // Code block to be executed })(parameters);
Ejemplo:
Javascript
(print_name = function (name = "Geek") { console.log("The function is executed by " + name); })(); print_name("GFG");
Producción:
The function is executed by Geek The function is executed by GFG
¿Por qué deberíamos usar una función autoejecutable?
Una de las ventajas que obtenemos de una función autoejecutable es que las variables dentro de una función autoejecutable no son accesibles fuera de la función. Esto evita que el espacio global se llene con una variable adicional que no se necesita y ocupa espacio adicional. Podemos ver en el siguiente ejemplo que la variable creada dentro de la función autoejecutable no es accesible fuera de ella y da como resultado un error.
Ejemplo:
Javascript
(print_name = function () { let name = "Geek"; console.log("The function is executed by " + name); })(); console.log(name);
Salida: Esto arrojará un error ya que la variable de nombre no está definida en el espacio global.