JavaScript 関数 新しいページはコチラ
提供: yonewiki
(→定義と呼び出しの同時指示) |
(→定義とオブジェクト化の同時指示) |
||
259行: | 259行: | ||
:前述のサンプルでは、関数の定義部分と、実際に関数のオブジェクトをnewキーワードを使って、左辺値のオブジェクト名に生成する処理がわかれていましたが、以下のように記述することで、定義と生成をひとまとめにできます。 | :前述のサンプルでは、関数の定義部分と、実際に関数のオブジェクトをnewキーワードを使って、左辺値のオブジェクト名に生成する処理がわかれていましたが、以下のように記述することで、定義と生成をひとまとめにできます。 | ||
*var objName1 = new Function(){ a, b, "document.write(a + b)" }; | *var objName1 = new Function(){ a, b, "document.write(a + b)" }; | ||
− | : | + | :のように記述することで同時生成できます。これは何がメリットなのでしょうか?それは関数に名前を付けない無名関数のオブジェクト化をするという点にあります。無名関数ということは、関数をどこに定義しても、例えばグローバルの空間、つまりはどこからでも関数名が参照できそうな場所で定義したとしても、関数名がないので、不用意に呼び出されることはなく一度きりの関数として利用できることです。ただし、こういう関数オブジェクトを使う例というのはあまりみかけないです。分けて書いた場合と使い方はほぼ変わらないので、サンプルは必要ないかもしれませんが、念のため、サンプルを記載しておきます。 |
286行: | 286行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Media:JavaScript Function objparallel.html|実行結果サンプル]] | [[Media:JavaScript Function objparallel.html|実行結果サンプル]] | ||
+ | |||
+ | |||
+ | 関数オブジェクトFunction内の命令部は,カンマで区切られた引数部があって、最後の引数が命令部になります。複数の命令を;で区切りながら記述することができます。引数のそれぞれを"ダブルクォーテーションで囲う必要があるため、命令部自体でダブルクォーテーションの記述が必要な場合はエスケープシーケンスを付与して\"としなければなりません。 | ||
== 呼び出し元取得 caller,constructor == | == 呼び出し元取得 caller,constructor == |