⊗jsPmFNFRF 252 of 505 menu

Función que retorna una función en JavaScript

Supongamos que tenemos una función que retorna una cadena de texto:

function func() { return '!'; } let result = func(); console.log(result); // mostrará '!'

Ahora, por analogía, en lugar de una cadena, retornemos una función anónima:

function func() { return function() { return '!'; }; } let result = func(); // la variable result será una función console.log(result); // mostrará 'function() {return '!';}'

Como puedes ver, la variable result ahora representa una función. Mostremos en la consola el resultado de su ejecución. Para ello, escribamos paréntesis después de ella:

function func() { return function() { return '!'; }; } let result = func(); console.log( result() ); // mostrará '!'

Dado que la llamada func() retorna una función, podemos llamar inmediatamente a esta función retornada, de esta manera: func()() - los primeros paréntesis obtienen el resultado de la función func (que en sí mismo es una función), y los segundos paréntesis se aplican al resultado de func.

Intentémoslo:

function func() { return function() { return '!'; }; } console.log( func()() ); // mostrará '!'

Crea una función func1 que, al ser llamada así: func1()(), retorne el número 1. Crea una función similar func2, que retorne el número 2. Encuentra la suma de los resultados de estas funciones.

daswcsenaz