プロパティアクセスの速度
A: 13 B: 55
のように、メンバが静的な場合には最適化がかかってかなり高速になる(Firefox、Safari、Opera)。jQueryとかはインスタンスを配列風に使っているせいでブラウザの最適化が適用できなくなって損しているんじゃないだろうか。
ここらへんの話は、Hidden ClassとかStructure ChainとかShape Interfaceとかいうのが関係してるような気がする。
<script type="text/javascript">window.onload = function () { function A() { this["foo"] = Math.random(); } A.prototype.bar = function () { return this; }; function B() { this[Math.random()] = "foo"; } B.prototype.bar = function () { return this; }; function time(name, fun) { var d = new Date().getTime(), t; var result = document.getElementById("result"); for (var i = 0; i < 10000; ++i) { fun(); } t = new Date().getTime() - d; result.textContent += name + ": " + t + "\n"; } time("A", function () { new A().bar(); }); time("B", function () { new B().bar(); }); };</script>