JavaScript中任何库与框架设计的第一个要点就是解决命名空间与变量污染的问题。jQuery就是利用了JavaScript函数作用域的特性,采用自执行函数包裹了自身的方法来解决这个问题。从jQuery不同的版本中可以看出它的自执行函数有如下两种写法:

 // 写法一
(function(window, factory) {
factory(window)
}(this, function() {
return function() {
//jQuery的调用
}
})); // 其实写法一可以看成是(function() {}()); // 写法二
(function(window, undefined) {
var jQuery = function() {}
// ...
window.jQuery = window.$ = jQuery;
})(window); // 而写法而可以看成是(function() {})();

采用这种写法的意义
JavaScript中没有私有作用域的概念,如果在多人开发的项目上,你在全局或局部作用域中声明了一些变量,可能会被其他人不小心用同名的变量给覆盖掉。根据JavaScript函数作用域链的特性,可以使用这种技术模仿一个私有作用域,把匿名函数作为一个“容器”,内部可以访问外部的变量,而外部环境不能访问内部。从而达到保护jQuery内部变量的作用。

最新文章

  1. daima
  2. python程序一直在后台运行的解决办法
  3. 从现在开始,使用简单优雅的validata.js
  4. 使用Spark分析拉勾网招聘信息(二): 获取数据
  5. 【转载】一致性hash算法释义
  6. 第一套增删改查(htm+ashx完成)
  7. window7快捷键
  8. sharepoint 开发
  9. 转: CSS中float和clear的理解
  10. 【转】使用cocos2d-console工具转换脚本为字节码
  11. aix下oracle数据库创建表空间和用户
  12. spring利用注解来注册bean到容器
  13. 理解Python的*args, **kwargs
  14. Android开发之使用URL訪问网络资源
  15. MVC5+EF6 入门完整教程 总目录
  16. ADODB——RecordSet对象
  17. 【Android Developers Training】 41. 向另一台设备发送文件
  18. JS 数据处理技巧及小算法汇总( 一)
  19. 跨站请求伪造攻击 CSRF
  20. 上传到 App Store 时出错。

热门文章

  1. ESP8266 LUA脚本语言开发: 准备工作-为方便学习(统一使用本人编译的固件)
  2. [LeetCode] 466. Count The Repetitions 计数重复个数
  3. Magisk —— 安卓新一代的第三方拓展,systemless模式
  4. css 在一定区域内滚动显示,不修改父级样式
  5. Canal订阅binlog变更并结合kafka实现消息缓冲
  6. SQL ------------- 最大与最小函数
  7. BCryptPasswordEncoder 判断密码是否相同
  8. HDU 2007-11 Programming Contest
  9. 大数据基础总结---HDFS分布式文件系统
  10. [转] vue前端异常监控sentry实践