【问题标题】:What is benefit of using (function(){...})() in JavaScript在 JavaScript 中使用 (function(){...})() 有什么好处
【发布时间】:2011-01-15 03:55:39
【问题描述】:

我注意到在 JQuery 中使用了以下代码结构

(function(){var l=this,g,y=l.jQuery,p=l.$,...})()

这似乎创建了一个函数,并调用它。

与内联函数的内容相比,采用这种方法有什么好处?

【问题讨论】:

标签: javascript closures anonymous-function


【解决方案1】:

它允许在函数内部拥有局部变量和操作,而不必将它们转换为全局变量。

【讨论】:

    【解决方案2】:

    就像:

    var foo = function(){var l=this,g,y=l.jQuery,p=l.$,...};
    foo();
    

    但更简单,不需要全局变量。

    【讨论】:

      【解决方案3】:

      通过自调用匿名函数,您可以创建一个本地范围,它非常高效,并且可以直接调用自身。

      你可以阅读它here

      【讨论】:

        【解决方案4】:

        它创建一个闭包来防止与代码的其他部分发生冲突。看到这个:

        如果您有其他一些使用$() 方法的库并且您还必须保留将其与jQuery 一起使用的能力,则特别方便。然后你可以像这样创建一个闭包:

        (function($) {
            // $() is available here
        })(jQuery);
        

        【讨论】:

          【解决方案5】:

          它为变量创建一个范围,特别是定义$,例如绑定到jQuery,无论其他库覆盖它。将其视为匿名命名空间。

          【讨论】:

            猜你喜欢
            • 2017-06-27
            • 1970-01-01
            • 2020-11-18
            • 1970-01-01
            • 1970-01-01
            • 2012-01-21
            • 2016-01-30
            • 2019-01-16
            • 2018-01-22
            相关资源
            最近更新 更多