2011年02月25日のつぶやき、疲れたぁ
[21:34]

いやぁ、今週は仕事が忙しかった。
とはいえなんとかこなせたので良かったです。

やはり、1日中プログラミングするのは身体にこたえます。
しかし僕はプログラマ35歳定年説に抗います。
がんばれ、自分!

ということで今はウズラ本。


[22:16]

ひとつ大きな仕事をこなしたので、今日はビールです。
ラジオを聴きながら、大好きな「じゃがりこ」をバリバリ、ラジオ聞こえねー;


[22:46]



うむ、22日からの続きで第4章「関数」です。
「即時関数」から。

即時関数は関数を定義とともに実行してしまうこと。
たとえば次のように書けば即実行される。

(function() {
var message = "Hello!";
console.log(message); // Hello!
}());

やってることは次と同じだが、

var message = "Hello!";
console.log(message); // Hello!

即時関数は、関数なのでJavaScript唯一のスコープを持つので、message変数はグローバルにならない。
つまり同名のグローバル変数に干渉しない、
ということらしいが、いまいちイメージ湧かず;
ちょっと説明不足でした;

関数はオブジェクトなので、プロパティを持てる。
これをメモ化(memolization)と呼ぶらしい。

var myFunc = function(param) {
if (!myFunc.cache[param]) {
myFunc.cache[param] = "Hello," + param;
}
return myFunc.cache[param];
};
// キャッシュの記憶領域確保
myFunc.cache = {};

var message = myFunc("redchant");
console.log(message); // Hello,redchant

中々馴染めないですが便利そうです。

最後の話題の「カリー化」についてはさっぱり分からなかった orz
[PR]
by redchant | 2011-02-25 21:43 | 日記
<< 2011年02月28日のつぶやき 2011年02月22日のつぶや... >>