在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

最新文章

  1. python利用unrar实现rar文件解压缩
  2. java学习流程
  3. springMVC中ajax的使用
  4. centos 安装php5.6
  5. magento提速的一些小技巧,列举manegnto网站提速的
  6. KMP--路过
  7. 在linux系统中I/O 调度的选择
  8. json格式处理及扩展
  9. 源码安装cx_Oracle(适合离线环境)
  10. 链路聚合trunk实现
  11. C#如何调用C++的dll
  12. python之路--while, 格式化输出, 编码
  13. PrimeNG之FileUpload
  14. linux/unix命令参考
  15. 设计table表格,用js设计偶数行和奇数行显示不同的颜色
  16. ffplay源码分析7-播放控制
  17. GIST特征描述符使用
  18. BZOJ3240 NOI2013矩阵游戏(数论)
  19. eclipse技巧-快捷键
  20. MySQL启动很慢的原因

热门文章

  1. 【转】Android Eclipse调试技巧
  2. nginx 代理http配置实例
  3. 【iBatis】使用resultMap配置返回结果时报错“列名无效”
  4. Python实践练习:电话号码和 E-mail 地址提取程序
  5. swagger 接口文档,控制器 和 object类型的参数与返回值 的 注释不显示问题
  6. leetcode697
  7. 「小程序JAVA实战」开发用户redis-session(40)
  8. 「小程序JAVA实战」小程序和后台api通信(28)
  9. html调用OCX
  10. a+b_1