封装 JavaScript源文件的全部内容到一个函数块有什么意义?
这是一个越来越普遍的做法,已被许多流行的 JavaScript库(jQuery、Node.js等)采用。这种技术创建了一个围绕文件全部内容的闭包。
最重要的是,创建了一个私有的命名空间,有助于避免不同 JavaScript模块和库之间的命名冲突。
这种技术的另一个特点是,允许把一个易于引用的(更短的)别名用于全局变量。
例如:
jQuery插件中, jQuery允许你使用 jQuery.noConflict(),来禁止$引用到jQuery命名空间。
在完成这项工作之后,利用这种闭包技术,代码仍然可以使用$,如下所示。
(function(s){/* jQuery plugin code referencing s */} )(jQuery)