如果参数只是一个具有长度属性的对象,那么为什么它在某些方面似乎与其他非数组对象(如Array.prototype.slice)表现不同呢?
例如,以下代码首先弹出“undefined”,然后弹出“foo”。为什么它们不同呢?
例如,以下代码首先弹出“undefined”,然后弹出“foo”。为什么它们不同呢?
(function(a){
var myobj = {0 : "foo"};
var myobjarray = Array.prototype.slice.call(myobj);
var argumentsarray = Array.prototype.slice.call(arguments);
alert(myobjarray.shift());
alert(argumentsarray.shift());
})("foo");