详解jquery插件中;(function ( $, window, document, undefined )的做用

在jquery插件中咱们常常看到如下这段代码jquery

1
2
3
;( function  ( $, window, document, undefined ){
//函数体内具体代码
})(jQuery, window,document);

对于不少初学者来讲很难明白这表示什么,下边我将为你们介绍其相应的做用。浏览器

一、代码最前面的分号,能够防止多个文件压缩合并觉得其余文件最后一行语句没加分号,而引发合并后的语法错误。框架

二、匿名函数(function(){})();:因为Javascript执行表达式是从圆括号里面到外面,因此能够用圆括号强制执行声明的函数。避免函数体内和外部的变量冲突。jquery插件

三、$实参:$是jquery的简写,不少方法和类库也使用$,这里$接受jQuery对象,也是为了不$变量冲突,保证插件能够正常运行。函数

四、window, document实参分别接受window, document对象,window, document对象都是全局环境下的,而在函数体内的window, document实际上是局部变量,不是全局的window, document对象。这样作有个好处就是能够提升性能,减小做用域链的查询时间,若是你在函数体内须要屡次调用window 或 document对象,这样把window 或 document对象看成参数传进去,这样作是很是有必要的。固然若是你的插件用不到这两个对象,那么就不用传递这两个参数了。性能

五、最后剩下一个undefined形参了,那么这个形参是干什么用的呢,看起来是有点多余。undefined在老一辈的浏览器是不被支持的,直接使用会报错,js框架要考虑到兼容性,所以增长一个形参undefinedspa

相关文章
相关标签/搜索