JavaScriptでブロックスコープを実現する方法
624 ワード
例えば以下のコード
(例えばJQuery)という名前の衝突は効果的に避けられます.実はJQueryはこのような方法でブロックの役割領域を実現しています.
{
var temp = "12";
}
alert(temp); // 12
通常のプログラミング経験によれば、ALert関数はtemp変数にアクセスできません.他のブロックの中で、JavaScriptにはブロックスコープの概念がないので、JSには機能しません.しかし、JSプログラムを書く時、特に大きなプログラムやライブラリがあります.ネーミング衝突を防ぐために、また変数の作用領域を制御するメカニズムが必要であるので、ブロックの作用領域の概念を実現するために、ここでは一般的な方法を紹介します.コードは以下の通りです.
(function() {
var temp = "123";
})();
alert(temp); //
上のコードのように関数式を定義してすぐに呼び出します.この形式はブロックの役割領域の概念を模倣して、ブロック内の名前空間を保護しています.(例えばJQuery)という名前の衝突は効果的に避けられます.実はJQueryはこのような方法でブロックの役割領域を実現しています.