freeCodeCamp/guide/spanish/javascript/immediately-invoked-functio.../index.md

2.5 KiB

title localeTitle
Immediately Invoked Functions Expressions(IIFEs) Expresiones de funciones inmediatamente invocadas (IIFE)

Declaración de función

Una función creada con una declaración de función es un objeto de función y tiene todas las propiedades, métodos y comportamiento de los objetos de función. Ejemplo:

  function statement(item){ 
    console.log('Function statement example '+ item); 
  } 

Expresión de la función

Una expresión de función es similar a la declaración de función, excepto que se puede omitir el nombre de la función para crear funciones anónimas. Ejemplo:

  var expression = function (item){ 
    console.log('Function expression example '+ item); 
  } 

Expresiones de funciones inmediatamente invocadas

Tan pronto como se crea la función, se invoca a sí misma, no necesita invocar explícitamente. En la siguiente variable de ejemplo, iife almacenará una cadena que es devuelta por la ejecución de la función.

  var iife = function (){ 
    return 'Immediately Invoked Function Expressions(IIFEs) example '; 
  }(); 
  console.log(iife); // 'Immediately Invoked Function Expressions(IIFEs) example ' 

La declaración antes de IIFE siempre debe terminar con una; o lanzará un error.

Mal ejemplo

var x = 2 //no semicolon, will throw error 
 (function(y){ 
  return x; 
 })(x); //Uncaught TypeError: 2 is not a function 

¿Por qué usar las expresiones de funciones invocadas inmediatamente?

  (function(value){ 
    var greet = 'Hello'; 
    console.log(greet+ ' ' + value); 
  })('IIFEs'); 

En el ejemplo anterior, cuando el motor javascript ejecuta el código anterior, creará un contexto de ejecución global cuando vea el código y creará un objeto de función en la memoria para IIFE. Y cuando llega a la línea 46 debido a la función que se invoca, se crea un nuevo contexto de ejecución sobre la marcha y, por lo tanto, la variable greet entra en ese contexto de ejecución de la función y no en el global. Esto es lo que lo hace único. This ensures that code inside IIFE does not interfere with other code or be interfered by another code por lo que el código es seguro.

Más información

Expresión de función inmediatamente invocada en Wikipedia ¿Qué hace el punto y coma principal en las bibliotecas de JavaScript?