JavaScript奇怪的箭头功能

时间:2018-10-23 07:25:29

标签: javascript arrow-functions

我正在处理JavaScript中的按钮单击。这段下面的代码在一个类里面,顺便说一下,我正在使用ReactJS库。 代码:

 this.handleClick = (bipinValue)=>(event)=>{ console.log("button clicked "+bipinValue+" by this "+event.target.value)}

并且在同一类的render方法中。代码如下:

<button onClick={this.handleClick('bipin')} value="btn">Click me!<button>

现在我的问题是上面代码中的()=>()=> {}语法是什么。我只知道()=> {},这是箭头功能。

  

OUTPUT:此btn单击按钮bipin。

1 个答案:

答案 0 :(得分:0)

总体而言,您创建了一个返回函数的函数。

要详细说明,您创建了一个带有常量值“ bipin”的处理程序,该处理程序也将在每次单击时(在该特定处理程序上)传递。点击发生时,event.target.value将成为按钮的value属性。

代码this.handleClick('bipin')创建函数:

(event) => {console.log("button clicked bipin by this " + event.target.value)}

也许可以更好地解释这里实际发生的事情,是看没有箭头功能的代码:

this.handleClick = function(bipinValue) {
    return function(event) {
        console.log("button clicked "+bipinValue+" by this " + event.target.value);
    }
}

没有什么奇怪的,只有JavaScript