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 相关文章推荐
flexigrid 类似ext grid的JS表格代码
Jul 17 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
Feb 03 Javascript
JS鼠标滑过图片时切换图片实现思路
Sep 12 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
Jan 08 Javascript
js+csss实现的一个带复选框的下拉框
Sep 29 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
Sep 17 Javascript
JSON 必知必会 观后记
Oct 27 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
Nov 02 Javascript
jQuery实现的背景颜色渐变动画效果示例
Mar 24 jQuery
解决微信小程序云开发中获取数据库的内容为空的方法
May 15 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
Feb 10 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
Feb 27 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
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
PHP 输出简单动态WAP页面
2009/06/09 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
轻轻松松学习JavaScript
2007/02/25 Javascript
浅谈javascript 面向对象编程
2009/10/28 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
python保存数据到本地文件的方法
2018/06/23 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
关于毕业的中学校园广播稿
2014/01/26 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
励志演讲稿200字
2014/08/21 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
铅球加油稿100字
2014/09/26 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
工作试用期自我评价
2015/03/10 职场文书