我正在尝试将所有较旧的代码转换为使用箭头功能...

以下作品:

$p_worklist.mouseover (()=> {
   closemenues();
   console.log ("Show Worklist");
 $div_worklistmenu.show();
});


但是,这不是

$p_worklist.mouseover =()=> {
   closemenues();
   console.log ("Show Worklist");
 $div_worklistmenu.show();
};


区别在于,第一个函数将主体包裹在括号中,而第二个函数不但将第一个括号替换为等号,然后删除了第二个。

尝试学习...
谢谢

最佳答案

问题不是箭头功能,而是您使用mouseover属性设置事件监听器的问题。

在JQuery中(假设您正在使用$,我假设您正在使用),mouseover是一个将另一个函数作为参数的函数。因此,您将完全像您一样传递匿名箭头功能。

但是,在原始JavaScript中,mouseover属性是指向要作为事件侦听器调用的函数的指针。

如果您使用的是JQ:

$('selector').mouseover(() => {
  // ...
});


如果您使用的是JS:

element.mouseover = event => {
  // ...
}




当然,您可以使用setter自己重写JQuery方法,但这可能不是您想要的。

关于javascript - 了解箭头功能-为什么这行不通呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59011657/

10-08 22:38