式クロージャは、単純な関数を書くための短縮された関数構文です。
構文
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)。