読み方 : アローかんすう

アロー関数【arrow function】

概要

アロー関数とは、JavaScriptで関数をより短く簡潔に式として記述するための構文。ES2015(ES6)規格で導入され、等号(=)と大なり記号(>)を組み合わせた矢印のような記号「=>」を用いる。
アロー関数のイメージ画像

関数定義を式のように記述できる記法で、その場限り使用する、名前のない「無名関数」を式のように定義する「ラムダ式」のJavaScriptにおける記法である。従来のfunctionキーワードを用いる関数定義に比べて短い記述で関数を定義できる。

例えば、引数を二つ受け取り和を返す処理は、function構文では「function(x,y){ return x+y }」のように複数のキーワードや波括弧を伴うが、アロー関数では「(x,y)=>x+y」のように引数の後に「=>」を書き、その右側に式を置くだけで表現できる。処理が単一の式である場合は波括弧やreturn文を省略でき、その式の評価結果が自動的に返される。処理が複雑な場合は従来記法と同じように記述してもよい。

アロー関数は関数を引数として他の関数に渡す用途などでよく用いられる。例えば、Arrayオブジェクトmapやfilter、forEachなどの高階関数コールバック関数を渡す際、アロー関数を用いることで処理内容を簡潔に記述できる。実際の開発現場では、タイマー処理やサーバからのデータ取得後の動作指定、ボタンがクリックされた時の処理など、様々な場面でこの構文が標準的に使われている。

一方、従来の関数と挙動が異なる点もある。例えば、自身を参照するthisキーワードの扱いについて、アロー関数は独自のthisを持たず、定義された外側のスコープのthisをそのまま参照する。この性質はクラス構文内のメソッドイベントハンドラの記述で重要となる。また、argumentsオブジェクトを持たない、コンストラクタとして使用できないなどの制約もある。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。