Funções aninhadas em JavaScript

Shivam Arora 12 outubro 2023
Funções aninhadas em JavaScript

Funções são um bloco de código útil que pode ser chamado em qualquer lugar exigido em um programa. Uma função aninhada é uma função dentro de uma função. Esse recurso é suportado em muitas linguagens de programação, JavaScript incluído.

Apresentaremos funções aninhadas em JavaScript neste tutorial.

A função externa é denominada função externa. A função aninhada dentro é chamada de função interna. Cada função pode aceitar argumentos diferentes.

Eles podem ser implementados da seguinte maneira.

function a(x) {    // Outer function
  function b(y) {  // inner function
    return x - y;
  }
  return b;
}

console.log(a(5)(4))

Produção:

1

No exemplo acima, a() é a função externa e b() é a função interna. O resultado final retornado usa os argumentos de ambas as funções.

Funções são objetos de classe que podem ser definidos na função externa e criados como uma variável em qualquer parte da função. Este método é denominado currying.

Veja o código abaixo.

function outer(x) {
  var w = function inner(y) {
    return x * y;
  } return w;
};

var outvar = outer(2);
console.log(outvar(4));

Produção:

8

As funções aninhadas têm outro benefício. Eles podem ser usados ​​para realizar cálculos dentro de outra função, mesmo que sejam definidos externamente.

Por exemplo,

function calculate(a, b, fn) {
  var c = a + b + fn(a, b);
  return c;
}

function sum(a, b) {
  return a + b;
}

function product(a, b) {
  return a * b;
}


console.log(calculate(10, 20, sum));
console.log(calculate(10, 20, product));

Produção:

60
230

Artigo relacionado - JavaScript Function