细说;(function ($, undefined){ })(jQuery); 的使用:浏览器
1. 对于function前面的分号(;)的使用:使用分号的目的是为了防止多个文件压缩合并时,觉得其余文件最后一行语句没加分号,而引发合并后的语法错误。框架
2. (function ($, undefined){ })(jQuery)这是一个匿名的函数,通常js库都采用这种自执行的匿名函数来保护内部变量。函数
3.使用undefined的缘由:性能
(1)由于undefined是window的属性,声明为局部变量以后,在函数中若是再有变量与undefined作比较的话,程序就能够不用搜索undefined到window,能够提升程序的性能。spa
(2)undefined在版本较旧的浏览器是不被支持的,直接使用会报错,js框架就要考虑到兼容性问题,故增长一个形参undefined插件
4. $实参:$是jQuery的简写,不少方法和类库也使用$,这里$接收 ,也是为了不$变量冲突,保证插件能够正常运行。 对象
windowwindow,document); : function这个函数还能够传window, document这两个实参,这两个作用域
实参分别接收window,document这两个对象,window,document这两个对象都是全局环境下的,而在函数体内的window,document实际上是局部变量,不是指所有的io
window,或是document对象。这样作有个好处就是能够提升性能,减小做用域的查询时间,若是你在函数体内须要屡次调用window,或是document对象,这样把windowfunction
或是document对象做为参数传进去,是很是有必要的。若是你的插件中没有用到这两个对象,那么就不须要传这两个参数了。