Javascriptのfunctionに意味不明なプロパティをつける
Javascriptの関数はオブジェクトである。オブジェクトとはキーに対し値を持つ連想配列的なものだ。そのため、以下は有効なJavascriptである。
var tmp = function () { alert("ding"); }; tmp.str = "dong"; tmp(); // ding alert(tmp.str); // dong //クロージャを使わずに値をキャッシュする tmp2 = function () { tmp2.str = tmp2.str || ""; tmp2.str += "unko! "; alert(tmp2.str); return this; }; tmp2(); // unko! tmp2(); // unko! unko! tmp2().tmp2(); // unko! unko! unko! // unko! unko! unko! unko!