代码之家  ›  专栏  ›  技术社区  ›  DarkArtistry

es6 javascript箭头函数

  •  -1
  • DarkArtistry  · 技术社区  · 6 年前

    以下是react的代码:

      handleChange = name => event => {
        console.log(name, event.target.value);
      }
    

    下面是react DOM上的代码

    onChange={this.handleChange('storeName')}
    

    我不明白的是,事件是如何传入的,甚至没有在this.handleChange('storeName')函数中声明它??它是如何工作的?因为我觉得通常都是这样。

    this.handleChange(e)
    

    然后通过声明来获取事件。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Sulthan    6 年前
    handleChange = name => event => {
    

    不是一个简单的函数。它是一个返回函数的函数。让我们重写一下:

    function name => {
       return event => {
           // name is captured inside this closure
           console.log(name, event.target.value);
       }
    }
    

    因此,呼吁 this.handleChange('storeName') 实际上生成一个函数 event 作为一个参数,然后我们分配 那个 功能到 onChange .

        2
  •  2
  •   MistyK    6 年前

    因为 this.handleChange('storeName') 返回一个函数,然后将其分配给 onChange 处理程序。