⊗jsPmFNFRF 252 of 505 menu

Função que retorna uma função em JavaScript

Suponha que temos uma função como esta, que retorna uma string:

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

Agora, em vez de uma string, por analogia, vamos retornar uma função anônima:

function func() { return function() { return '!'; }; } let result = func(); // a variável result será uma função console.log(result); // exibirá 'function() {return '!';}'

Como você pode ver, a variável result agora é uma função. Vamos exibir no console o resultado de sua execução. Para isso, escrevemos parênteses para ela:

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

Como a chamada func() retorna uma função, podemos chamar imediatamente essa função retornada, assim: func()() - os primeiros parênteses obtêm o resultado da função func (que é uma função), e os segundos parênteses são aplicados ao resultado de func.

Vamos tentar:

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

Crie uma função func1 que, quando chamada assim: func1()(), retorne o número 1. Crie uma função similar func2, retornando o número 2. Encontre a soma dos resultados dessas funções.

trazswuzlde