如何在箭头函数内访问Argument对象

时间:2017-11-02 06:05:11

标签: javascript reactjs ecmascript-6

listOfArg函数内的参数Object是指带有箭头功能的父arguments。如果没有箭头功能,this密钥引用会发生变化,listOfArg功能将无法通过this更改进行访问。

componentDidMount(){
      document.addEventListener('scroll', this.onScrollEvent);
  }

listOfArg = () => {
    console.log(arguments)
  }

onScrollEvent = (e) => {
     this.listOfArg("1", "2", "3", "4")
}

1 个答案:

答案 0 :(得分:0)

来自MDN Docs

  

箭头功能没有自己的功能;使用封闭执行上下文的this值。

如果您使用

listOfArg = () => {
    console.log(arguments)
}
this内的{p> onScrollEvent将引用组件this,并且您将获得传递给组件的参数,因为箭头函数将使用封闭的执行上下文,即React组件。

现在,如果您不使用箭头功能:

listOfArg() {
  console.log(arguments)
}

在这里,listOfArg将拥有自己的this,并会打印出被调用的参数:["1", "2", ...],这是预期的。