事件函数声明

时间:2017-11-10 08:50:36

标签: javascript jquery event-handling

我试图理解这篇文章中的事件处理程序声明和函数声明:https://stackoverflow.com/a/46418688/7727532

我是Javascript和jQuery的新手并试图理解。我所知道的是你声明如下

$('#clickMe').on('click', doSomeThing(e));

function doSomeThing(e){
 console.log(e);
}

我不明白的第一部分是

(e) => this._handleScaling(e)

这里发生了什么?我们捕获当前对象并将其发送到函数_handleScaling()?但为什么我们有"(e)=>"前?

第二部分是

_handleScaling(e) {

如果我正确的是另一个内部的本地函数?因为下划线开始。那么链接中的代码可能无法说明全貌?

1 个答案:

答案 0 :(得分:0)

您需要提供功能参考而不是功能的返回值

替换

$('#clickMe').on('click', doSomeThing(e));

$('#clickMe').on('click', doSomeThing); //e is the event object will be automatically passed on to the event handler
  

我不明白的第一部分是

     

(e) => this._handleScaling(e)这里发生了什么?我们抓住了   当前对象并将其发送到函数_handleScaling()?但为什么呢   我们之前有"(e) =>"吗?

不, _handleScaling 仅传递e(事件对象),以便它可以使用event访问已触发此e.target的元素因为使用箭头函数 this将引用定义此箭头函数的范围。