练武不练功,到老一场空。计算机也一样。

计算机的功,就是原理。如果程序员只会使用各种函数,各种框架,而不知其原理,顶多熟练工人而已。知其然,更要知其所以然。

jquery我们用得很爽,但它究竟咋实现的?

1、首先,jquery就是一些javascript。

而且完全就是一些原始的javascript,没有用其他第三方的库或什么的。它本身就存放在一个js文件里。

我们常常张嘴就说:

jquery是一个javascript框架

哦,可不是随便说说而已。

2、总体结构

javascript里,基本元素就是函数。从大的方面说,整个jquery,就是一个javascript的函数,以jquery-1.12.3为例,其总体结构如下:

(function( global, factory ) {
//调用factory(工厂)生成并返回jQuery实例
}(global实参, factory实参));

这个巨大的函数,声明并运行,最终目的只有一个,就是生成并返回一个jQuery实例(就是那个美元符,在这里,美元符是一个函数实例!)。

而源码的绝大部分,也就是主体部分,放在 factory实参 这里。这个 factory实参,是一个巨大无比的匿名函数。

再放大一点看看:

(function( global, factory ) {
//调用factory(工厂)生成jQuery实例
factory( global );
}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
//factory实现,jquery源码主体部分
}));

最新文章

  1. android 入门-工程属性介绍
  2. linux rdate
  3. PostgreSQL中的引号和null
  4. [转]Debian 安装与卸载包命令(APT&&DPKG)
  5. js正则表达式中=s.g表示什么意思
  6. LA 4123 (计数 递推) Glenbow Museum
  7. ganymed-ssh2使用
  8. TI C66x DSP 系统events及其应用 - 5.10(创建ISR的三种情况)
  9. POJ2406 KMP算法
  10. Javascript 拖拽的一些简单的应用——逐行分析代码,让你轻松了解拖拽的原理
  11. 编译v8引擎
  12. ural 1100. Final Standings(数据结构)
  13. 谈谈在DevOps实践中,感觉最重要的这三个技术……
  14. [07] ServletContext上下文对象
  15. android- 远程调试
  16. pgrep
  17. 细说shiro之二:组件架构
  18. Chrome浏览器 调试工具 vue-devtools 的安装和使用
  19. (转,学习记录)MD5加密算法中的加盐值(SALT)
  20. struts中action名称反复导致的神秘事件

热门文章

  1. 9. InnoDB通用表空间
  2. iptables:ipset批量管理ip
  3. 在不使用ssr的情况下解决Vue单页面SEO问题
  4. c++_等差素数列
  5. 部署安装lnmp
  6. 学习vue之windows下安装live-server 超级详细篇
  7. Ducci Sequence解题报告
  8. mysql 常用命令(二)
  9. Java基础学习总结(90)——Java单元测试技巧
  10. javaweb 开发所需工具和入门教程文档等