このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
First-class Function (第一級関数)
あるプログラミング言語が第一級関数 (First-class functions) を持つと言われる場合、その言語の関数がその他の変数と同様に扱われることを表します。例えば、こうした言語では、関数を他の関数への引数として渡したり、他の関数から返却したり、変数の値として代入したりすることができます。
In this article
例
>関数を変数へ代入
js
const foo = () => { console.log("foobar");};foo(); // 変数を使用して呼び出し// foobarここでは無名関数を変数に代入してから、変数を使用して末尾に括弧() を追加することで、その関数を呼び出しています。
メモ:関数に名前があっても、変数を使用してその関数を呼び出すことができます。名前を付けるとコードをデバッグするときに役立ちますが、呼び出し方法に影響はありません。
引数として関数を渡す
js
function sayHello() { return "Hello, ";}function greeting(helloMessage, name) { console.log(helloMessage() + name);}// `sayHello` を `greeting` 関数の引数として渡すgreeting(sayHello, "JavaScript!");// Hello, JavaScript!ここではsayHello() 関数をgreeting() 関数の引数として渡しており、関数を変数として扱っていることを示しています。
メモ:他の関数へ引数として渡される関数は、コールバック関数 と呼ばれます。sayHello はコールバック関数です。
関数を返す
js
function sayHello() { return () => { console.log("Hello!"); };}この例では、関数を他の関数から返す必要があります。 -関数を返すことができるのは、 JavaScript では関数を値として扱っているからです。
メモ:関数を返す関数は高階関数と呼ばれます。