$A
$A という関数を使うと、Array もどきオブジェクト(NodeList や Arguments など)を Array オブジェクト化することができる。便利だが、この関数を Enumerable インタフェースを実装するために使用するのは、あきらかにおかしい。
そこで、以下のようなものを定義してみる。
var $E = Enumerable.from = function(iterable) {
iterable._each = Array.prototype._each;
Object.extend(iterable, Enumerable);
return iterable;
};これを、 $A(〜).each とかしてるところに使う。 $E(〜).each こうする。 $E の実行速度は $A の 7 〜 4 倍です。
with(Element)
effects.js の with 文をすべてやめる。これでかなりスピードアップ!