js继承的一个问题

var a = {0:"A",1:"B",2:"C",length:3};
  var newa = Array.prototype.slice.call(a);
  console.log(newa);

这个例子我的理解是a对象继承并执行了Array的slice方法,但是slice方法没传参,为什么打印出来是一个["A", "B", "C"]数组呢?

阅读 1.4k
2 个回答

slice方法不加参数的话返回原数组。

>a = [1,2,3]
 [1, 2, 3]
>a.slice()
 [1, 2, 3]
>Array.prototype.slice.call(a,0,1)
[1]

slice不传参默认截取所有的数组元素

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题