$(function(){ });やjQuery(function ($) { });の意味と即時実行のメモ(かなり曖昧で不正確だと思う)。
即時実行の利点は変数名(関数名)を宣言することなく関数を実行できること(即時実行 (function(){}()), (function(){})() : JavaScrip)。
(function () { // ・・・処理・・・ }()); // または (function () { // ・・・処理・・・ })();
『JavaScript パターン』(Stoyan Stefanov 2011)は前者を推奨している。
// 通常 var add = function (a, b) { return a + b; } $result = add(10, 20) console.log($result); // 30 // 即時呼び出し $result = function (a, b) {return a + b; }(30, 40); console.log($result); // 70; // 引数が関数 var hoge = function (f) { console.log(f(50, 60)); }; hoge(function (a, b) { return a + b; }); // 110
$(function(){ });やjQuery(function ($) { });との関連についてのメモ。
var MY = function (f) { f(); // 即時実行 } MY(function () { alert('Hello World'); });
$(function () { });やjQuery(function ($) { })の変数$やjQueryはjQueryファイルで定義されておりfunction () { }やfunction ($) { }の部分にあたる引数を記述する。
» jQueryをmootoolsなどの他のライブラリと干渉しないようにする方法まとめ :: 5509
(function (msg) { alert(msg); }('Hello World')); // ○ 実行できる function (msg) { alert(msg); }('Hello World'); // × 実行できない
即時実行でfunctionが頭にくる場合は括弧()で全体を囲む理由は下記に詳しい解説がある。
» (function(){})() と function(){}() – IT戦記
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。