gpt4 book ai didi

javascript - 为处理程序或匿名函数指定命名函数的区别?

转载 作者:行者123 更新时间:2023-11-29 10:43:24 25 4
gpt4 key购买 nike

在 jQuery 中指定处理函数时,为处理程序指定命名函数与将命名函数包装在匿名函数中有区别吗?

指定命名函数:

$( "#foo" ).on( "click", bar);

相对于在匿名函数中包装命名函数:

$( "#foo" ).on( "click", function() {
bar();
})

最佳答案

它们几乎是等价的。具有匿名函数的等效版本是:

$( "#foo" ).on( "click", function(event) {
bar.call(this, event);
});

当 jQuery 运行事件处理程序时,它将上下文绑定(bind)到目标元素。 this.bar() 将该绑定(bind)传递给函数。

如果您希望能够使用 .off() 删除特定的处理程序,您需要使用具有命名函数的第一个版本。如果您使用匿名函数,则在删除它时无法引用它。

关于javascript - 为处理程序或匿名函数指定命名函数的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24588523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com