Array.prototype.slice.callとlength
ちょっと暇だったのでArray.prototype.slice.callと戯れてみることに。
Array.prototype.slice.call({ 0: 123, 1: 456 }); // [] Array.prototype.slice.call({ 0: 123, 1: 456, length: 1 }); // [123] Array.prototype.slice.call({ 0: 123, 1: 456, length: 2 }); // [123, 456] Array.prototype.slice.call({ 0: 123, 1: 456, length: 1 }); // [123]
lengthの値を見てるのかー。ということはarguments以外の配列っぽいものではないもの(lengthがないもの)を渡しても配列は得られないということか。