Javascript 在arrow函数中使用name=参数作为函数参数是一种很好的做法?

Javascript 在arrow函数中使用name=参数作为函数参数是一种很好的做法?,javascript,arrays,string,arrow-functions,Javascript,Arrays,String,Arrow Functions,箭头函数没有参数数组;使用…参数的效果如何?将来它不会破坏什么东西吗 const getStr=(…参数)=>[].slice.call(参数,1).join(参数[0]) getStr('*','1','b','1c')/'1*b*1c' 箭头函数本身没有参数,因此使用参数作为参数不是问题,但可能会造成混淆 但是外部函数范围内的箭头函数可以访问外部函数的参数对象。因此,arrow函数可以在其逻辑中使用外部函数的参数,如下所示: const getStr=(…其他参数)=>{ log(“这里是

箭头函数没有参数数组;使用
…参数的效果如何?将来它不会破坏什么东西吗

const getStr=(…参数)=>[].slice.call(参数,1).join(参数[0])
getStr('*','1','b','1c')/'1*b*1c'

箭头函数本身没有
参数,因此使用
参数作为参数不是问题,但可能会造成混淆

但是外部函数范围内的箭头函数可以访问外部函数的
参数
对象。因此,arrow函数可以在其逻辑中使用外部函数的
参数,如下所示:

const getStr=(…其他参数)=>{
log(“这里是参数”,参数类型);
return[].slice.call(另一个参数,1.join)(另一个参数[0]);
}
log(getStr('*','1','b','1c');
函数外部(){
//从外部函数作用域捕获的参数
返回(()=>{
log(“这里是参数”,参数类型);
返回[].slice.call(参数,1).join(参数[0]);
})()
}

log(外部('*','1','b','1c')使用它完全没有问题,因为这些都是在文档中指定的,没有什么可担心的,为什么不直接执行
…args
?在多个层次和更短的时间里,它比较容易混淆。你是在问这个具体的案例吗?因为
const getStr=(joiner,…rest)=>rest.join(joiner)
会更好。我会避免特别命名数组
参数
,因为可能会产生混淆。我会给它起个名字,任何不同的名字:
args
argumentsArray
,例如。“箭头函数没有参数数组”普通函数也没有。普通函数具有
参数
对象-它不是数组,而是类似于数组的数组。区别在于不能对其使用数组方法,例如,
函数fn(){return arguments.map(x=>x+1)}
是不可能的。