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

时间:2012-08-21 14:07:35

标签: javascript jquery event-handling

我知道jQuery 存在.on(),将来不应使用.bind(),因为我的jQuery版本大于或等于1.7。< / p>

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

实施例

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

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

function foo(){
   alert("Hello");
}

想象一下,我的页面中有divwarning.bind()。函数{{1}}会将一个新函数附加到具有匿名函数的每个处理程序,但它与JavaScript和jQuery内部的命名函数完全相同吗?

谢谢。

1 个答案:

答案 0 :(得分:9)

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

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

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