如何解决箭头函数没有引数

1262 ワード

比如我们想要一个機能可以把传入的参数转成一个数组,传统方法代码如下
function turnArr(){
  return [].slice.apply(arguments)
}
console.log(turnArr(1,2,3))  // [1,2,3]
但如果我们用箭头函数的形式改写的话,发现就报错了,

加个参数进去试试,还是报错

为啥不行?原因是箭头函数没有引数这个类参数数组对象,那么如何解决呢?用 剩余参数
const turnArr = (...arguments) => [].slice.apply(arguments)
console.log(turnArr(1,2,3)) //[1,2,3]
成功解决了,但是还不够优雅(代码还不够少,影响我偷懒),换个写法
const turnArr = (...arguments) => Array.from(arguments)
console.log(turnArr(1,2,3))  ////[1,2,3]
还能再少么?能!!
const turnArr1 = (...args) => args;
console.log(turnArr1(1,2,3)); //[1,2,3]