関数の即時実行を使う利点は変数名を節約できる点にある。無名関数の即時実行ば変数を必要としない。また
即時実行の構文は2とおりある。『JavaScript パターン』(Stoyan Stefanov 2011)は前者を推奨している。
(function () { // ・・・処理・・・ }()); // 下記でも同じ (function () { // ・・・処理・・・ })();
関数名付きでも即時実行した時点でガーベージコレクトされる例。
var o = { bar: false, foo: false }; // 関数宣言 function bar() { o.bar = true; } // 名前付き関数の即時実行 var res = function foo() { o.foo = true; }(); // 関数名の変数fooはすぐにガーベージコレクトされる。 console.log(typeof bar == 'function'); // ture console.log(typeof foo == 'undefined'); // true
JavaScriptの即時実行について参考になるサイト。
» (function(){})() と function(){}() – IT戦記
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。