【问题标题】:Javascript vs jQuery Function Difference?Javascript 与 jQuery 函数的区别?
【发布时间】:2013-05-18 19:19:24
【问题描述】:

我一直在做一个程序,我想知道像这样启动两个函数之间的区别:

$(function () {
   //content
});

function Name () {
    //content
}

另外,为什么我不能说出第一个例子?我尝试将第一个示例更改为第二种类型,并且该功能完全停止工作。我在第一个示例中使用了 jQuery,一切都很好,但是在另一个示例中,该函数停止工作。

那么有什么区别呢?

【问题讨论】:

  • $ 是一个函数。 $(function() {...}); 正在调用该函数,并将另一个函数作为其参数。就像function foobar() {...} $(foobar);

标签: javascript jquery function syntax


【解决方案1】:

$(function () {});这是$(document).ready(function(){});的快捷方式

此时:

function Name () {
    //content
}

是标准的javascript函数。

【讨论】:

  • jquery 的情况下名称是什么?
【解决方案2】:

第一个是用于 jQuery ready 事件的函数表达式,第二个是函数。

使用$(function(){...});$(document).ready(function(){...}); 的简写。

ready 事件在文档完成加载时发生,因此事件处理程序将自动运行。除非您调用常规函数,否则它根本不会运行。

您自然可以使用常规函数代替事件处理程序的函数表达式:

function readyHandler() {
  ...
}

$(readyHandler); // or $(document).ready(readyHandler);

函数表达式可以命名,例如:

var x = function y() { ... };

但是,函数表达式的名称(示例中为y)不是全局的,它只能在函数本身内部使用。此外,这在不同浏览器之间的具体实现方式不同,因此您应该避免使用它。

【讨论】:

    【解决方案3】:

    第一个是所谓的匿名函数。它在文档就绪事件上执行

    $(document).ready(...);
    

    并且是 jQuery 约定。由于你不能直接调用它,它没有/不需要名字。

    第二个版本是一个标准函数,你可以随时通过名字调用。

    如果您将第一个符号更改为第二个符号,它将不再在文档就绪时自动运行。安全的方法是将“worklaod”移动到具有第二个符号的函数中,并使用第一个符号创建一个调用该函数的行。这样一来,您就拥有了两全其美:单独的可调用函数和简单的自动执行。

    【讨论】:

      【解决方案4】:

      第一个:

       $(function () {
       //content
       });
      

      向jQuery对象$传递一个匿名函数,相当于$(document).ready(function(){});

      第二个只是一个名为 Name 的 JavaScript 函数。

      【讨论】:

        猜你喜欢
        • 2013-10-29
        • 1970-01-01
        • 2015-11-20
        • 1970-01-01
        • 2011-04-18
        • 2011-03-08
        • 1970-01-01
        • 2015-02-05
        相关资源
        最近更新 更多