【发布时间】:2019-09-18 10:41:36
【问题描述】:
箭头函数没有参数数组;使用...arguments 有多好?以后不会弄坏东西吧?
const getStr = (...arguments) => [].slice.call(arguments, 1).join(arguments[0])
getStr( '*', '1', 'b', '1c' ) // '1*b*1c'
【问题讨论】:
-
使用完全没问题,因为这些都在文档中指定,不用担心
-
为什么不直接做
...args?它在多个级别上更容易混淆,而且更短。 -
您是在问这个具体案例吗?因为
const getStr = (joiner, ...rest) => rest.join(joiner)会好很多。 -
我会避免将数组命名为
arguments,因为可能会造成混淆。我会给它取个名字,任何不同的名字:例如args、argumentsArray。恕我直言。 -
"箭头函数没有参数数组" 普通函数也没有。一个普通的函数有
argumentsobject - 它不是一个数组,而是一个类似数组的。不同之处在于您不能在其上使用数组方法,例如,function fn() { return arguments.map(x => x+1)}是不可能的。
标签: javascript arrays string arrow-functions