jquery封装插件时匿名函数形参和实参的写法解释


Posted in Javascript onFebruary 14, 2017

 在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

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
Dec 23 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
Jan 15 Javascript
nullJavascript中创建对象的五种方法实例
May 07 Javascript
JS控制网页动态生成任意行列数表格的方法
Mar 09 Javascript
jquery插件orbit.js实现图片折叠轮换特效
Apr 14 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
Mar 25 Javascript
js修改onclick动作的四种方法(推荐)
Aug 18 Javascript
angularJS深拷贝详解
Mar 23 Javascript
浅谈AngularJS中$http服务的简单用法
May 15 Javascript
JavaScript和TypeScript中的void的具体使用
Sep 12 Javascript
JavaScript setInterval()与setTimeout()计时器
Dec 27 Javascript
分享8个JavaScript库可更好地处理本地存储
Oct 12 Javascript
js实现数组去重方法及效率?Ρ? target=
Feb 14 #Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
Feb 14 #Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
May 29 #Javascript
Bootstrap中data-target 到底是什么
Feb 14 #Javascript
详解JS: reduce方法实现 webpack多文件入口
Feb 14 #Javascript
如何快速上手Vuex
Feb 14 #Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
Feb 14 #Javascript
You might like
PHP的FTP学习(一)
2006/10/09 PHP
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
zend framework文件上传功能实例代码
2013/12/25 PHP
php微信开发自定义菜单
2016/08/27 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
PHP类的特性实例分析
2016/09/28 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
jQuery 选择器详解
2015/01/19 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
spyder常用快捷键(分享)
2017/07/19 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
Python爬虫爬取博客实现可视化过程解析
2020/06/29 Python
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
个人找工作的自我评价
2013/10/17 职场文书
电气专业应届生求职信
2013/11/01 职场文书
计算机应用与科学个人的自我评价
2013/11/15 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书