JavaScriptには、配列のふりをする(または「配列のような」)オブジェクトがあります。このようなオブジェクトはarguments、、NodeLists(などから返される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