我试图理解这篇文章中的事件处理程序声明和函数声明: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) {
如果我正确的是另一个内部的本地函数?因为下划线开始。那么链接中的代码可能无法说明全貌?
答案 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
将引用定义此箭头函数的范围。