関数の即時実行を使う利点は変数名を節約できる点にある。無名関数の即時実行ば変数を必要としない。また
即時実行の構文は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.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。