9

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

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

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

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

4

5 回答 5

7

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

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

(function($) {
    // $() is available here
})(jQuery);
于 2010-02-10T07:45:49.997 回答
4

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

于 2010-02-10T07:44:42.360 回答
1

With self invoking anonymous function you create a local scope, it's very efficient and it directly calls itself.

You can read about it here

于 2010-02-10T07:46:09.930 回答
0

就像:

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

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

于 2010-02-10T07:45:45.643 回答
0

It allows to have local variables and operations inside of the function, instead of having to transform them to global ones.

于 2010-02-10T07:46:00.023 回答