式クロージャは、単純な関数を書くための短縮された関数構文です。
構文
function [name]([param1[, param2[, ..., paramN]]]) expression
引数
name- 関数名。関数が 匿名 の場合、省略できます。名前は関数本体だけのローカルです。
paramN- 関数に渡される引数の名前。関数は、最大 255 個の引数を持つことができます。
expression- 関数本体を構成する式。
説明
これは、単純な関数を書くための短縮された関数構文にすぎません。典型的な Lambda 表記 に似た言語で書くためのものです。
JavaScript 1.7 およびそれ以前:
function(x) { return x * x; }
JavaScript 1.8:
function(x) x * x
この構文により、中括弧と 'return' 文をなくします (それらは暗黙的に宣言されています)。構文が短くなること以外に、このようにコードを書くことへの付加的な利点はありません。
例
イベントリスナをバインドする短縮表現:
document.addEventListener("click", function() false, true);
JavaScript 1.6 から、配列関数の一部でこの表記法を用います:
elems.some(function(elem) elem.type == "text");
ブラウザの実装状況
| 機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| 基本サポート | 未サポート | (有) | 未サポート | 未サポート | 未サポート |
| 機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| 基本サポート | 未サポート | 未サポート | (有) | 未サポート | 未サポート | 未サポート |
Gecko 固有のノート
Gecko / SpiderMonkey 45 (Firefox 45 / Thunderbird 45 / SeaMonkey 2.42) 以降、式クロージャが使用された場合のコンソール警告が追加されました (バグ 995610)。