【问题标题】:Event handler bind to an anonymous function vs named function事件处理程序绑定到匿名函数与命名函数
【发布时间】:2012-08-21 14:07:34
【问题描述】:

我知道 .on() 与 jQuery 一起存在,考虑到我的 jQuery 版本大于或等于 1.7,以后不应该使用 .bind()

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

示例:

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

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

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

假设我的页面中有 100 个 divwarning.bind() 函数会为每个带有匿名函数的处理程序附加一个新函数,但它是否与 JavaScript 和 jQuery 内部的命名函数完全相同?

谢谢。

【问题讨论】:

    标签: javascript jquery event-handling


    【解决方案1】:

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

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

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

    【讨论】:

    • 如果动态 DOM 元素添加了很多次,并且每次添加它们时都应该附加事件处理程序怎么办 - 那么性能是否会有所不同(我实际上是在问,这是不是愤世嫉俗的评论)。
    猜你喜欢
    • 2022-11-14
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多