我注意到在 JQuery 中使用了以下代码结构
(function(){var l=this,g,y=l.jQuery,p=l.$,...})()
这似乎创建了一个函数,并调用它。
与内联函数的内容相比,采用这种方法有什么好处?
我注意到在 JQuery 中使用了以下代码结构
(function(){var l=this,g,y=l.jQuery,p=l.$,...})()
这似乎创建了一个函数,并调用它。
与内联函数的内容相比,采用这种方法有什么好处?
它创建一个闭包以防止与代码的其他部分发生冲突。看到这个:
如果您有其他一些使用该$()
方法的库并且您还必须保留将其与 jQuery 一起使用的能力,则特别方便。然后你可以创建一个像这样的闭包:
(function($) {
// $() is available here
})(jQuery);
它为变量创建一个范围,特别是定义$
例如绑定到jQuery
,无论其他库覆盖它。将其视为匿名命名空间。
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
就像:
var foo = function(){var l=this,g,y=l.jQuery,p=l.$,...};
foo();
但更简单,不需要全局变量。
It allows to have local variables and operations inside of the function, instead of having to transform them to global ones.