JavaScript の無名関数

無名関数(anonymous function)は、名前を持たない関数のこと。JavaScript では主に一時的な処理やコールバック関数に使われる。

// 通常の関数
function hello() {
  console.log('Hello')
}

// 無名関数
const hi = function() {
  console.log('Hi')
}

無名関数は function の後に関数名を付けない。constlet に代入すれば、その変数名で呼び出せる。

即時実行関数(IIFE)

無名関数は定義直後に実行することもできる。これを「即時実行関数」と呼ぶ。

(function() {
  console.log('実行された')
})()

この形式ではスコープ(変数の有効範囲)が関数内に閉じるため、グローバル汚染を防げる。

アロー関数との違い

ES6 以降は、無名関数の代わりにアロー関数を使うのが一般的になっている。

const hi = () => {
  console.log('Hi')
}
無名関数

function() を使う。this は呼び出し元に依存する。

アロー関数

=> を使う。this は外側のスコープを引き継ぐ(静的に束縛される)。

短いコールバックやイベントリスナーにはアロー関数、古いコードやコンストラクタ関数などには無名関数が使われることが多い。