JavaScriptには、配列のふりをする(または「配列のような」)オブジェクトがあります。このようなオブジェクトはarguments
、、NodeList
s(などから返されるgetElementsByClassName
)、およびjQueryオブジェクトです。
古くなるとconsole.log
、それらは配列として表示されますが、そうではありません。配列のようになるには、オブジェクトにlength
プロパティが必要であることを私は知っています。
だから私はこのような「オブジェクト」を作りました:
function foo(){
this.length = 1;
this[0] = "bar";
}
var test = new foo;
私がいるときconsole log(test)
、私は(予想通り)foo
オブジェクトを取得します。を使用して配列に「変換」できます
Array.prototype.slice.call(test)
しかし、私はそれを変換したくありません、私はそれを配列のようにしたいのです。配列のようなオブジェクトを作成して、古くなったときにconsole.log
配列として表示されるようにするにはどうすればよいですか?
設定しようとしましfoo.prototype = Array.prototype
たが、配列ではなくオブジェクトがconsole.log(new foo)
表示されます。foo