当然,ES6+之后可以直接用Array.from来构造array了。这之前在转换时需要注意用concat时要把args作为参数而不是thisArg,slice则相反
function useArguments() {
var s = [].concat.apply(arguments)
console.log(s)
/*
[Arguments(4)]
(4) [1, 2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ]
length: 1
__proto__:Array(0)
*/
var b = [].concat.apply([],arguments)
var c = [].slice.apply(arguments) // or [].slice.call(arguments)
/*
Both b and c would be [1,2,3,4]
*/
}
useArguments(1,2,3,4)
在JavaScript中,使用Array.from或slice将arguments对象转换为数组时,需要注意ES6后的Array.from直接转换,而slice需传入arguments作为参数。
1932

被折叠的 条评论
为什么被折叠?



