Javascript初学者语法问题

标签 javascript syntax

我试图了解这两个 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/

相关文章:

python - 当存在 locals() 时,是否有可以忽略 ' assigned to but never used' 的 python 语法检查器?

syntax - RDFa 中井号/井号的完整含义

javascript - 里面有文字的复选框

python - mysql com 语法问题

scala - "` 类声明 head` { val_name : Type => `class body` }"的语法含义是什么

javascript - 循环选项在 youtube js api 中不起作用

c++ - 奇怪的 C++ 语法?

javascript - JavaScript 中 addEventListener() 方法上下文中的冒泡和捕获

java - 哪些模板语言可同时用于 Java 和 Javascript?

javascript - 我可以在类中修改 DOM 吗?