jquery封装插件时匿名函数形参和实参的写法解释
在jquery插件中我们经常看到以下这段代码
;(function ( $, window, document, undefined ){
//函数体内具体代码
})(jQuery, window,document);
1、代码最前面的分号,可以防止多个文件压缩合并以为其他文件最后一行语句没加分号,而引起合并后的语法错误。
2、匿名函数(function(){})();:由于Javascript执行表达式是从圆括号里面到外面,所以可以用圆括号强制执行声明的函数。避免函数体内和外部的变量冲突。
3、$实参:$是jquery的简写,很多方法和类库也使用$,这里$接受jQuery对象,也是为了避免$变量冲突,保证插件可以正常运行。
4、window, document实参分别接受window, document对象,window, document对象都是全局环境下的,而在函数体内的window, document其实是局部变量,不是全局的window, document对象。这样做有个好处就是可以提高性能,减少作用域链的查询时间,如果你在函数体内需要多次调用window 或 document对象,这样把window 或 document对象当作参数传进去,这样做是非常有必要的。当然如果你的插件用不到这两个对象,那么就不用传递这两个参数了。
5、最后剩下一个undefined形参了,那么这个形参是干什么用的呢,看起来是有点多余。undefined在老一辈的浏览器是不被支持的,直接使用会报错,js框架要考虑到兼容性,因此增加一个形参undefined
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!
相关文章
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,r
这篇文章主要介绍了jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用的相关资料,需要的朋友可以参考下2016-01-01
基于daterangepicker日历插件使用参数注意的问题
下面小编就为大家带来一篇基于daterangepicker日历插件使用参数注意的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-08-08
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
这篇文章主要介绍了Bootstrap table中toolbar新增条件查询及refresh参数使用方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2018-05-05
jquery easyui 对于开始时间小于结束时间的判断示例
对于开始时间小于结束时间的判断可以参考,jquery easyui里的ValidateBox进行判断,需要的朋友可以参考下2014-03-03


最新评论