JavaScriptについて調べたことの覚書
JavaScriptを軽くする方法
gzip圧縮
gzip圧縮を行って転送量を減らす「HTTP 圧縮(HTTP compression)」
http://blog.livedoor.jp/s_s11/archives/1018016.html
関数定義方法
関数を定義する方法その1 (普通のやり方)
関数を定義する方法その2 (無名関数を使う)
※JS特有のやり方
javascriptのライブラリとかを探していて良く見かける
(function (){hoge;hoge;})();
これは上記を踏まえて、無名関数を定義してすぐに実行することを意味します。
クロージャについて
なかなか理解が出来ませんでしたが、このサイトを見て脳内がかなり整理されました。
http://dqn.sakusakutto.jp/2009/01/javascript.html
はまったところ
var method = code2name();
この時点で無名関数が実行され、クロージャ(関数内関数も実行)されるものとばかり思っていたが、そうじゃなかった・・・。
無名関数自体は実行されているが、return に指定している無名関数は実行されてない。
なので、これだけだと、クロージャオブジェクトを取得しているだけとなってしまう。
クロージャオブジェクトを取得し、それを実行させることで、始めてクロージャとして機能する・・・。
参考URL:http://hisasann.com/housetect/2007/12/post_44.html
こんな感じでajax使ってapiたたいて、次のapiたたく際の引数にしておきたい場合などに便利。
こうしておくと、呼び出す側はreadMore("引数");
を繰り返し呼ぶだけでnextIdがどんどん変わった状態で実行させることが出来るようになる。
javascriptだと変数のスコープが分かりにくいのと、callback地獄になってわかりにくくなってしまうので、こうしておくとすっきりして分かりやすくなります。