事件处理程序绑定到匿名函数vs命名函数

Sam*_*uel 10 javascript jquery event-handling

我知道.on()存在jQuery,.bind()不应该在将来使用,考虑到我有一个大于或等于1.7的jQuery版本.

我想知道的是:将匿名函数或命名函数附加到使用的事件处理程序之间是否有任何区别.bind()

例:

// Anonymous function
$(".warning").bind("click", function(){
   alert("Hello");
});

// Named function
$(".warning").bind("click", foo);

function foo(){
   alert("Hello");
}
Run Code Online (Sandbox Code Playgroud)

想象一下,我的页面中有100个div班级warning.该函数.bind()将使用匿名函数将新函数附加到每个处理程序,但它与JavaScript和jQuery内部的命名函数完全相同吗?

谢谢.

Oha*_*had 9

不会有任何明显的性能差异.

一个主要区别是,使用命名函数,您还可以选择性地取消绑定函数,而不仅仅是与事件类型关联的所有函数.

当然,这也可以帮助您避免代码重复.