Las funciones son uno de los componentes básicos de cualquier lenguaje de programación y JavaScript ha llevado las funciones a un nivel completamente nuevo. Se dice que las funciones son una colección de declaraciones que se ejecutarán en una secuencia adecuada en un contexto particular. Ahora JavaScript proporciona una variedad de métodos para definir y ejecutar funciones, hay funciones con nombre, funciones anónimas y luego hay funciones que se ejecutan tan pronto como se montan, estas funciones se conocen como Expresiones de función inmediatamente invocadas o IIFE. Profundicemos más para saber más sobre los IIFE.

Sintaxis: IIFE sigue una sintaxis particular como se muestra a continuación.

(function (){ 
// Function Logic Here. 
})();

Ahora probemos un poco más para comprender la relación entre el nombre y la sintaxis de este tipo de funciones.

¿Por qué el nombre Expresiones de función inmediatamente invocadas?

  • Invocado inmediatamente: Esta parte es fácil de explicar y demostrar. Este tipo de función se invoca inmediatamente ya que estas funciones se ejecutan tan pronto como se montan en la pila, no requiere una llamada explícita para invocar la función. Si miramos la sintaxis en sí tenemos dos pares de paréntesis cerrados, el primero contiene la lógica a ejecutar y el segundo generalmente es lo que incluimos cuando invocamos una función, el segundo paréntesis se encarga de decirle al compilador que el La expresión de función debe ejecutarse inmediatamente.
  • Expresiones de función: Es sencillo comprender que una expresión de función es una función que se utiliza como expresión. JavaScript nos permite usar funciones como expresión de función si asignamos la función a una variable, envolvemos la función entre paréntesis o ponemos un no lógico delante de una función. El siguiente programa ilustra las diferentes formas en que podemos crear una expresión de función.

    var myFunc = function() { return "GeeksforGeeks"; };

     

    !function() { return "GeeksforGeeks"; };

     

    (function() { return "GeeksforGeeks"; });

    Ahora, si observa el tercer código de ejemplo, es idéntico a la primera parte de la sintaxis de un IIFE, por lo que podemos concluir que la primera parte del IIFE contiene una expresión de función mientras que la parte final la invoca inmediatamente.

Conversión de funciones a IIFE

br>

Como ya hemos visto qué es un IIFE y cómo se puede descomponer su forma sintaxial para que tenga más sentido, podemos convertir una función regular en un IIFE siguiendo solo los dos pasos siguientes.

Puntos importantes

  1. IIFE sigue su propio alcance como cualquier otra función / variable en JavaScript. La parte del nombre que se invoca inmediatamente a veces es confusa para los nuevos desarrolladores, ya que esperan que IIFE se ejecute independientemente del alcance de la función, esto es incorrecto. Por ejemplo, tomemos el siguiente ejemplo donde el IIFE se define dentro de una función y solo se invocará inmediatamente si llamamos a la función principal.

    function myFunc()

    {

        console.log("Welcome to");

        

        (function() { console.log("GeeksForGeeks!"); })();

        console.log("Hi There!");

    }

     

    myFunc();

    Producción:

    Welcome to
    GeeksForGeeks!
    Hi There!
    
  2. Los IIFE tienen su propio alcance, es decir, las variables que declare en la Expresión de la función no estarán disponibles fuera de la función.
  3. De manera similar a otras funciones, los IIFE también pueden ser nombrados o anónimos, pero incluso si un IIFE tiene un nombre, es imposible referirlo / invocarlo.
  4. Los IIFE también pueden tener parámetros. Por ejemplo,

    (function(dt) {

        console.log(dt.toLocaleTimeString());

        

    })(new Date());

    Producción:

    4:30:12 PM
    

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *