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)}
是不可能的。