我注意到在JQuery中使用了以下代码结构
(function(){var l=this,g,y=l.jQuery,p=l.$,...})()
这似乎创建了一个函数,并调用它。
采用这种方法与内联函数的内容相比有什么好处?
答案 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)
它允许在函数内部包含局部变量和操作,而不必将它们转换为全局变量和操作。