無名関数を定義して即実行する
JavaScriptのライブラリのコードを読んでいるとよく以下のようなコードを見かける。
(function() { var hoge = {}; hoge.a = function(){ //... } //... })();
定義した無名関数を末尾の「()」で実行しているというわけだ。代わりに「.call()」にしているものも見かける。
無名関数の関数スコープを使うことでグローバルコンテキストを汚すことを気にせずに、好きなように変数が使える。
クロージャのおかげで残したいものはグローバルコンテキストに渡して残せる。
割と昔からあるテクニックみたいだけど、にわかJavaScripter的にはなるほどと思ったのでメモ。