【问题标题】:Immediately-Invoked Function Expression (IIFE) In JavaScript - Passing jQueryJavaScript 中的立即调用函数表达式 (IIFE) - 传递 jQuery
【发布时间】:2012-09-02 04:16:48
【问题描述】:

我有以下代码,我知道它是一个 IIFE。但是,我一直无法理解 (jQuery) 和 ($) 是什么。我知道这与将 jQuery 的引用传递到 IIFE 有关,但是有人可以清楚地解释我的目的吗?感谢您的帮助和时间:-)

(function ($) {
//code
})(jQuery);

【问题讨论】:

    标签: javascript jquery iife


    【解决方案1】:

    $ 是函数的参数。 jQuery 是调用函数时作为该参数传递的内容。

    这样想:

    function init($) {
       // code can use $ here as a shortcut for jQuery
       // even if $ has a different definition globally or isn't defined globally
    }
    
    init(jQuery);
    

    除了这个例子创建了一个全局符号init之外,这个和你的IIFE的执行是相同的。两者都定义了一个函数并立即调用它。

    $ 是函数的参数。 jQuery 是作为该参数传递的内容。这用于将$ 定义为jQuery 的快捷方式,同时在该函数内部而不影响$ 的全局定义。有时也会有轻微的性能优势,因为本地定义的符号(作为局部变量或命名参数)的访问速度可能比全局符号稍快。

    IIFE 的优点是没有定义新的全局符号。除此之外,它在执行上与此代码相同。

    【讨论】:

    • 可爱的回答我的朋友 :-) 谢谢! :-)
    猜你喜欢
    • 2017-08-30
    • 1970-01-01
    • 2016-05-04
    • 2023-04-04
    • 2012-12-28
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多