JavaScript の入れ子関数

Shivam Arora 2023年10月12日
JavaScript の入れ子関数

関数は、プログラムで必要な場所ならどこでも呼び出すことができる便利なコードブロックです。入れ子関数は、関数内の関数です。このような機能は、JavaScript を含む多くのプログラミング言語でサポートされています。

このチュートリアルでは、JavaScript でネストされた関数を紹介します。

外側の機能は外側の機能と呼ばれます。内部にネストされた関数は、内部関数と呼ばれます。各関数は異なる引数を受け入れることができます。

これらは次の方法で実装できます。

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

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

出力:

1

上記の例では、a() は外部関数であり、b() は内部関数です。返される最終結果は、両方の関数からの引数を使用します。

関数は、外部関数で定義でき、関数の任意の部分で変数のように作成できるクラスオブジェクトです。この方法はカリー化と呼ばれます。

以下のコードを参照してください。

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

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

出力:

8

ネストされた関数には、もう 1つの利点があります。これらは、外部で定義されている場合でも、別の関数の内部で計算を実行するために使用できます。

例えば、

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));

出力:

60
230

関連記事 - JavaScript Function