我试图了解这两个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
甚至不带参数,因此无论如何都浪费了全部精力。