prototype.jsに呪われたはてなブックマーク その2
prototype.jsを使うと、http://d.hatena.ne.jp/sshi/20060125/p1 の件と同様にArrayにも呪いがかかるようだ。Array.prototypeにまでeachやらinjectやらcollectやら放りこまれてました。でもそのくせ、each_with_indexは無いのな。中途半端だ。JavaScriptなんだから無理矢理Rubyぽく使わなくてもいいじゃないか。forループでまわそうよ。まあ、百歩ゆずってRubyぽく使いたいとしても、標準の使い方を阻害するのだけは勘弁して欲しい。
prototype.jsなんてものは使いたくないのだが、はてなブックマークのブックマークレットを作ろうとすると問答無用で読みこまれているので、避けようがない。仕方ないので、キャンセルするコードを書いた。しょっぱなにこのコードを埋めておくとObject.prototypeとArray.prototypeに関しては標準の状態に戻る、、はず。まだDOMあたりにも呪いがかかってそうだけど、どうしたもんか。
delete Object.prototype.extend; var ar = new Array(); for (var i in ar){ delete Array.prototype[i]; }
便利関数を追加したいんだったら、ArrayとかObjectとかを継承した独自クラス作ってやってくれればいいのに。それでは駄目なのだろうか。