返回的内部函数中的访问参数对象

时间:2019-04-18 00:48:37

标签: javascript

在以下函数中,我返回一个函数。这个返回的函数试图访问“参数”,但是由于某种原因,它引用了外部函数的“参数”,而不是它自己的参数。我知道这是因为它是一个箭头函数,因此绑定到外部函数,但是对这是足够好的理解并不感到满意。您能否解释为什么以及如何访问内部函数“参数”

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函数中的局部参数。

0 个答案:

没有答案