我正在阅读 John Resig 出色的高级 javascript 教程,但我并不完全理解以下调用之间的区别:(请注意,“参数”是一个内置的 javascript 单词,并不完全是一个数组,因此使用 Array.slice 进行黑客攻击而不是简单地调用 arguments.slice)
>>> arguments
[3, 1, 2, 3]
>>> Array.slice.call( arguments )
3,1,2,3 0=3 1=1 2=2 3=3
>>> Array.slice.call( arguments, 1 )
[]
>>> Array().slice.call( arguments )
3,1,2,3 0=3 1=1 2=2 3=3
>>> Array().slice.call( arguments, 1 )
1,2,3 0=1 1=2 2=3
基本上我的误解归结为 Array.slice 和 Array().slice 之间的区别。这两者之间究竟有什么区别,为什么 Array.slice.call 的行为不符合预期?(这是返回参数列表中除第一个元素之外的所有元素)。