JavaScript 中自我声明匿名函数之前的美元符号?

发布于 2024-12-07 14:18:51 字数 154 浏览 0 评论 0原文

这两者有什么区别:

$(function () {
    // do stuff
});

AND

(function () {
    // do stuff
})();

What is the difference between these two:

$(function () {
    // do stuff
});

AND

(function () {
    // do stuff
})();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

↘紸啶 2024-12-14 14:18:51

第一个使用 jQuery 将函数绑定到 document.ready 事件。第二个声明并立即执行一个函数。

The first uses jQuery to bind a function to the document.ready event. The second declares and immediately executes a function.

兲鉂ぱ嘚淚 2024-12-14 14:18:51

$(function() {}); 是 jQuery 的快捷方式

 $(document).ready(function() { 
     /* Handler for .ready() called. */ 
 });

,而 (function() {})(); 是立即调用的函数表达式,即 IIFE。这意味着它是一个表达式(而不是语句),并且在创建后立即被调用。

$(function() {}); is a jQuery shortcut for

 $(document).ready(function() { 
     /* Handler for .ready() called. */ 
 });

While (function() {})(); is a instantly invoked function expression, or IIFE. This means that its an expression (not a statement) and it is invoked instantly after it is created.

别想她 2024-12-14 14:18:51

它们都是匿名函数,但是 (function(){})() 会立即调用,而 $(function(){}) 在文档准备好时调用。

jQuery 的工作原理是这样的。

window.jQuery = window.$ = function(arg) {
    if (typeof arg == 'function') {
        // call arg() when document is ready
    } else {
       // do other magics
    }
}

因此,您只需调用 jQuery 函数并传入一个函数,该函数将在文档准备就绪时调用。

‘自执行匿名函数’与这样做是一样的。

function a(){
    // do stuff
}
a();

唯一的区别是您没有污染全局名称空间。

They are both anonymous functions, but (function(){})() is called immediately, and $(function(){}) is called when the document is ready.

jQuery works something like this.

window.jQuery = window.$ = function(arg) {
    if (typeof arg == 'function') {
        // call arg() when document is ready
    } else {
       // do other magics
    }
}

So you're just calling the jQuery function and passing in a function, which will be called on document ready.

The 'Self-executing anonymous function' is the same as doing this.

function a(){
    // do stuff
}
a();

The only difference is that you are not polluting the global namespace.

究竟谁懂我的在乎 2024-12-14 14:18:51

一个是 jquery $(document).ready 函数,另一个只是一个调用自身的匿名函数。

one is a jquery $(document).ready function and the other is just an anonymous function that calls itself.

泼猴你往哪里跑 2024-12-14 14:18:51
$(function () {
    // It will invoked after document is ready
});

一旦文档准备好,这个函数就会执行,这意味着整个 HTML 应该在执行之前加载,但在第二种情况下,该函数在创建后立即调用。

(function () {
    // It will invoked instantly after it is created
})();
$(function () {
    // It will invoked after document is ready
});

This function execution once documents get ready mean, the whole HTML should get loaded before its execution but in the second case, the function invoked instantly after it is created.

(function () {
    // It will invoked instantly after it is created
})();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文