我试图了解这两个 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
(另一个引用引用其 friend myFunctionB
)。
函数引用传递一个参数 - 请参阅 jQuery 文档。
在示例 #1 中,您还设置(作为 jQuery 事件处理程序)函数引用。该引用引用了一个匿名函数,其主体如下所示:
method.myFunctionA(this);
显然,除了函数参数之外,它做同样的事情;您将丢弃 jQuery 想要给您的任何参数,而是将 this
发送到 myFunctionA
的最终目的地。要添加更多的胰岛素,myFunctionA
甚至不采用参数,所以无论如何,这完全是浪费精力。
关于Javascript初学者语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6402010/