JavaScript 関数 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(定義とオブジェクト化の同時指示)
(定義とオブジェクト化の同時指示)
258行: 258行:
 
== 定義とオブジェクト化の同時指示 ==
 
== 定義とオブジェクト化の同時指示 ==
 
:前述のサンプルでは、関数の定義部分と、実際に関数のオブジェクトをnewキーワードを使って、左辺値のオブジェクト名に生成する処理がわかれていましたが、以下のように記述することで、定義と生成をひとまとめにできます。
 
:前述のサンプルでは、関数の定義部分と、実際に関数のオブジェクトをnewキーワードを使って、左辺値のオブジェクト名に生成する処理がわかれていましたが、以下のように記述することで、定義と生成をひとまとめにできます。
*var objName1 = new Function(){ a, b, "document.write(a + b)" };
+
*var objName1 = new Function("a", "b", "document.write(a + b)");
 
:のように記述することで同時生成できます。これは何がメリットなのでしょうか?それは関数に名前を付けない無名関数のオブジェクト化をするという点にあります。無名関数ということは、関数をどこに定義しても、例えばグローバルの空間、つまりはどこからでも関数名が参照できそうな場所で定義したとしても、関数名がないので、不用意に呼び出されることはなく一度きりの関数として利用できることです。ただし、こういう関数オブジェクトを使う例というのはあまりみかけないです。分けて書いた場合と使い方はほぼ変わらないので、サンプルは必要ないかもしれませんが、念のため、サンプルを記載しておきます。
 
:のように記述することで同時生成できます。これは何がメリットなのでしょうか?それは関数に名前を付けない無名関数のオブジェクト化をするという点にあります。無名関数ということは、関数をどこに定義しても、例えばグローバルの空間、つまりはどこからでも関数名が参照できそうな場所で定義したとしても、関数名がないので、不用意に呼び出されることはなく一度きりの関数として利用できることです。ただし、こういう関数オブジェクトを使う例というのはあまりみかけないです。分けて書いた場合と使い方はほぼ変わらないので、サンプルは必要ないかもしれませんが、念のため、サンプルを記載しておきます。
  

2016年2月22日 (月) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス