素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

配列じゃないけど配列のように働くものもある

初めてのJavaScriptとか、JavaScript 第五版とかに書いてあったけど読んだときは意味が分からなかった。
やっと意味が分かった。

var foo=[1,2,3];

foo.forEach(function(s){alert(s)});

は動くけど

var foo=document.getElementsByTagName('input');
foo.forEach(function(s){alert(s)});

は動かない。
document.getElementsByTagNameは、lengthとかもあっていろいろ配列っぽい動きをするけど、配列じゃないからforEachは存在しないということ。

そういうことか。

でも[0]とかで取り出せるのは何故?
どうやればそういうものを作れるかわからない。

F=function(){};
F.prototype=[3,2,1];

var a=new F;

a[1]

a[1]は2。


foo.prototype=['bar'];
ってやればいいのか。