JavaScriptには、関数を定義したすぐにその関数を実行するための構文があります。これは即時関数と呼ばれることがあります。
次のような記述になります。
(function() { alert('hello'); }())
記述を見ればわかりますが、通常の関数定義と違って、下記の点に気がつくはずです。
- 関数式を使って匿名関数を記述
- 匿名関数を実行するために()をつける
- 関数全体を()で囲む(匿名関数を変数へ代入する場合は不要)
このように関数を用意すると、初期化段階でしか使わない変数を、このローカルスコープに閉じて使うことができます。一度だけ記述すれば住む関数については、こういった記述をすることを検討すると良いでしょう。
use strict; モードでうまく動かないときは、下記を試してみましょう。call関数を使う方法です。
(function() { var a = '即時関数のローカル変数 a'; alert('a:' + a); }).call(this);
JavaScriptについては、下記の書籍の参考になるでしょう。
プログラミング言語一般については、下記が参考になるでしょう。
- クラスベースのオブジェクト指向プログラミング言語の基礎を学ぶには … 改訂版 基礎Java(CD-ROM付) (IMPRESS KISO SERIES)
- クラスベースのオブジェクト指向プログラミング言語を学ぶには … プログラミング言語Java (The Java Series)
- 関数型プログラミング言語を学ぶには … Scalaスケーラブルプログラミング第2版
- プログラミング言語の理論を学には … プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)