「関数リテラル」の版間の差分
提供: Node.js/JavaScript入門
(ページの作成:「関数リテラルfunction literal)とは、匿名関数、無名関数、ラムダ式と呼ばれます。 '''読み方''' ;関数リテラル:かんすう り...」) |
(相違点なし)
|
2014年8月30日 (土) 14:13時点における版
関数リテラルfunction literal)とは、匿名関数、無名関数、ラムダ式と呼ばれます。
読み方
- 関数リテラル
- かんすう りてらる
- function literal
- ふぁんくしょん りてらる
概要
以下のコードは、関数リテラルの例です。変数 square には、関数への参照が格納されます。
var square = function(x) { return x * x; };
関数リテラル(無名関数)のメリット
無名関数を用いることで、名前空間における衝突を回避できます。
関数リテラルの宣言
通常の関数定義は、以下の通りです。
function square(x) { return x * x; };
上記の関数を関数リテラルとして定義する場合には、以下の通りです。
var square = function(x) { return x * x; };
Function()を使用して、同様の定義を行えます。
var square = new Function("x", "return x * x;");
なお、上記のFunction()での定義は、jshintで下記のエラーが出ます。
The Function constructor is a form of eval.
関数リテラルの実行結果を返す例
以下の例では、変数 add に関数リテラルの参照が格納されます。
var add = function(x,y) { return x + y; };
参照ではなく、実行した結果が欲しいだけの場合があります。関数リテラルを実行して、戻り値を変数に格納するには、関数リテラルの宣言の後ろに()をつけます。
var total = function(x,y) { return x + y; } (1,2);
この例では、変数 total に関数リテラルを実行した結果得られた3が格納されます。
たとえば、こういったこともできます。
(function(x,y){return x+y;})(1,2) == 3
関連項目
- 関数リテラル
- オブジェクト