在以下函数中,我返回一个函数。这个返回的函数试图访问“参数”,但是由于某种原因,它引用了外部函数的“参数”,而不是它自己的参数。我知道这是因为它是一个箭头函数,因此绑定到外部函数,但是对这是足够好的理解并不感到满意。您能否解释为什么以及如何访问内部函数“参数”
function add() {
let pa = arguments;
if(arguments.length>1){
return "regular function"
}else{
return ()=>{
return "curried function with " + pa + " and " + arguments;
}
}
}
我知道返回一个命名的提升函数可以解决此问题:
function add() {
let pa = arguments;
if(arguments.length>1){
return "regular function"
}else{
return function curried(){
return "curried function with " + pa + " and " + arguments;
}
}
}
我仍然希望以更清晰的方式来思考arrow函数,以及如何访问arrow函数中的局部参数。