在JavaScript中使用(function(){...})()有什么好处

时间:2010-02-10 07:42:40

标签: javascript closures anonymous-function

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

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

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

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

5 个答案:

答案 0 :(得分:7)

它创建一个闭包以防止与代码的其他部分发生冲突。见:

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:1)

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

您可以阅读here

答案 3 :(得分:0)

就像:

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

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

答案 4 :(得分:0)

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