「関数を返す関数」パターンにはJavaScriptで名前がありますか?


14

JavaScriptでこのパターンを頻繁に使用します。以下に例を示します。

const comments = [
  { text: 'Hello', id: 1 },
  { text: 'World', id: 4 },
];

const byId = id => element => element.id === id;

const comment = comments.find(byId(1));

時々、このパターンはコードを読みやすく、モジュラーにすることができます。このパターンは何と呼ばれていますか?

回答:


20

それらは高階関数と呼ばれます。

高階関数とは、別の関数を引数として取ることができる関数、または結果として関数を返す関数です。- M.デビッド・グリーンによるJavaScriptでの高階関数


そして、あなたは閉鎖することになります。
トーマスジャンク

3
JavaScriptは、すべての機能が第一級の言語です。つまり、他の値のように変数でそれらを渡すことができます。クロージャは、それが定義された「レキシカルスコープ」を囲んでいる関数です。オブジェクトのメソッドがオブジェクトの状態変数にアクセスする方法と少し似ています。
candied_orange

3
この特定のケースでは、彼は2つの引数を1に減らしています。
user94930017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.