このスニペット:
(function(global){
// your code here
// referring to the variable named "global" in this scope
// will be a reference to the default javascript global object
})(this);
global
は、この自己実行関数内にあるすべてのコードに対してラベル付けされた引数にグローバルオブジェクト(それが何であれ)を割り当てるための構造です。
自己実行関数は、別の実行スコープを定義するために使用されます。これにより、この他のスコープ内で定義した関数または変数が、このスコープの外部から干渉したり、直接アクセスしたりすることはありません(スコープを他のコードスコープから分離します)。
ブラウザでは、グローバルオブジェクトがオブジェクトですが、グローバルオブジェクトがwindow
機能しない可能性がある他のJavaScript環境(サーバー上にnode.jsがないなど)で機能する可能性のあるコードを作成する場合はwindow
、これが抽出の方法です。デフォルト値からグローバル値を取得し、this
それを別の変数に入れて、コードブロック内の任意の場所で参照できるようにします。
コードがブラウザでのみ実行されることを意味する場合、これは実際には意味がありません。window
グローバルオブジェクトが必要なときに参照できます。