比如我们想要一个function,可以把传入的参数转成一个数组,传统方法代码如下
function turnArr(){
return [].slice.apply(arguments)
}
console.log(turnArr(1,2,3)) // [1,2,3]
但如果我们用箭头函数的形式改写的话,发现就报错了,
加个参数进去试试,还是报错
为啥不行?原因是箭头函数没有arguments这个类参数数组对象,那么如何解决呢?用剩余参数
const turnArr = (...arguments) => [].slice.apply(arguments)
console.log(turnArr(1,2,3)) //[1,2,3]
成功解决了,但是再用这样的写法就啰嗦
const turnArr1 = (...args) => args;
console.log(turnArr1(1,2,3)); //[1,2,3]
因为arguments是伪数组,而剩余参数确是货真价实的真数组.
Top comments (0)