無名関数(anonymous function)は、名前を持たない関数のこと。JavaScript では主に一時的な処理やコールバック関数に使われる。
// 通常の関数 function hello() { console.log('Hello') } // 無名関数 const hi = function() { console.log('Hi') }
無名関数は function の後に関数名を付けない。const や let に代入すれば、その変数名で呼び出せる。
即時実行関数(IIFE)
無名関数は定義直後に実行することもできる。これを「即時実行関数」と呼ぶ。
(function() { console.log('実行された') })()
この形式ではスコープ(変数の有効範囲)が関数内に閉じるため、グローバル汚染を防げる。
アロー関数との違い
ES6 以降は、無名関数の代わりにアロー関数を使うのが一般的になっている。
const hi = () => { console.log('Hi') }
無名関数
function() を使う。this は呼び出し元に依存する。
アロー関数
=> を使う。this は外側のスコープを引き継ぐ(静的に束縛される)。
短いコールバックやイベントリスナーにはアロー関数、古いコードやコンストラクタ関数などには無名関数が使われることが多い。