でもいろいろとつっこみどころ満載であることは確か。一つ一つつっこみどころにコメントしてもいいのですが、文句言うだけだったら何の意味もないので、試しに自分なりの実装を作ってみました。
特大のツッコミどころがそのまま、というか拡大されてる。
document.getElementsByClassName = function(klass) {
var all = document.getElementsByTagName("*");
var ar = [];
for (var i = 0; i < all.length; i++) {
if (all[i].className == klass)
ar.push(all[i]);
}
return ar;
};
NodeListのlengthアトリビュートに全要素の数だけアクセスするのは何の為? ものすごく多くのDOMユーザーに言いたいことだけど、NodeListは「生きて」いるよ。lengthはDOMツリーの操作に対応して変化可能だということ。JavaScriptをあまり書かない人の為にこういうのも載せとく。
function getLength(n){ getLength.times_this_called++; return n; }
getLength.times_this_called = 0;
for (var i=0; i<getLength(100); i++){ "pass" }
throw getLength.times_this_called; // 101