読者です 読者をやめる 読者になる 読者になる

山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

JavaScriptでスコープを限定する方法

JavaScriptだと変数がグローバル変数なのでライブラリを使ったり提供したりするときに変数名がバッティングしそうで困るなあと思っていました。Javaだとパッケージで区切られていてそれもかぶらないように命名規則が決まっています。持っているドメイン名を逆にするということでcom.oisix.*という形になり、そのドメイン名は他の人は持っていないのでかぶりません。

しかしJavaScriptでも安全にする方法がありました。それは即時関数です。
こんなふうに書きます。

(function() { .... })();

後ろに()がついているのでこの関数の中身は定義と同時に実行されます。そのため普通にコードを書いたのと同じように実行されます。しかし変数は関数の中なのでローカル変数になります。外側と変数名が重複しても大丈夫です。