JavaScript Introducción


Ejemplo

En JavaScript, las funciones pueden definirse de forma anónima utilizando la sintaxis de "flecha" ( => ), que a veces se denomina una expresión lambda debido a las similitudes de Common Lisp .

La forma más simple de una función de flecha tiene sus argumentos en el lado izquierdo de => y el valor de retorno en el lado derecho:

item => item + 1 // -> function(item){return item + 1}

Esta función se puede invocar inmediatamente proporcionando un argumento a la expresión:

(item => item + 1)(41) // -> 42

Si una función de flecha toma un solo parámetro, los paréntesis alrededor de ese parámetro son opcionales. Por ejemplo, las siguientes expresiones asignan el mismo tipo de función en variables constantes :

const foo = bar => bar + 1;
const bar = (baz) => baz + 1;

Sin embargo, si la función de flecha no toma parámetros, o más de un parámetro, un nuevo conjunto de paréntesis debe encerrar todos los argumentos:

(() => "foo")() // -> "foo"

((bow, arrow) => bow + arrow)('I took an arrow ', 'to the knee...')
// -> "I took an arrow to the knee..."

Si el cuerpo de la función no consiste en una sola expresión, debe estar entre corchetes y usar una declaración de return explícita para proporcionar un resultado:

(bar => {
  const baz = 41;
  return bar + baz;
})(1); // -> 42

Si el cuerpo de la función de flecha consiste solo en un objeto literal, este objeto literal debe estar entre paréntesis:

(bar => ({ baz: 1 }))(); // -> Object {baz: 1}

Los paréntesis adicionales indican que los corchetes de apertura y cierre son parte del objeto literal, es decir, no son delimitadores del cuerpo de la función.