我试图了解这两个jQuery代码段之间的区别是什么,因为它们将具有相同的结果。

1个

var method = {
      myFunctionA: function() {
        // do something
      },
      myFunctionB: function() {
        // do something
      },
    }

$(selector1).click(function() { method.myFunctionA(this) });
$(selector2).click(function() { method.myFunctionB(this) });


2

function myFunctionA(){
    // do something
}

function myFunctionB(){
    // do something
}

$(selector1).click(myFunctionA);
$(selector2).click(myFunctionB);

最佳答案

在示例2中,您正在设置(作为jQuery事件处理程序)一个函数引用。此引用引用了myFunctionA(另一个引用了它的朋友myFunctionB)。

函数参考传递了一个参数-有关此信息,请参见jQuery文档。

在示例1中,您还设置了(作为jQuery事件处理程序)函数引用。此引用引用匿名函数,其主体如下所示:

method.myFunctionA(this);


显然,除了功能参数外,它的作用相同。您将舍弃jQuery想给您的任何参数,而是将this发送到myFunctionA的最终目的地。要添加更多的绝缘,myFunctionA甚至不带参数,因此无论如何都浪费了全部精力。

07-28 09:12