jquery源码学习笔记一:总体结构
练武不练功,到老一场空。计算机也一样。
计算机的功,就是原理。如果程序员只会使用各种函数,各种框架,而不知其原理,顶多熟练工人而已。知其然,更要知其所以然。
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源码主体部分
}));
!
转载于:https://www.cnblogs.com/leftfist/p/6808717.html
jquery源码学习笔记一:总体结构相关推荐
- jquery源码学习笔记三:jQuery工厂剖析
jquery源码学习笔记二:jQuery工厂 jquery源码学习笔记一:总体结构 上两篇说过,query的核心是一个jQuery工厂.其代码如下 function( window, noGlobal ...
- 非典型2D游戏引擎 Orx 源码阅读笔记(1) 总体结构
write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 前言 完全不了解Orx的可以参考我写的<orx 库简单介绍 >以及官方 ...
- 菜鸟的jQuery源码学习笔记(三)
1 each: function(callback, args) { 2 return jQuery.each(this, callback, args); 3 }, each:这个调用了jQuery ...
- 2016年11月2日——jQuery源码学习笔记
1.jQuery()函数,即$().有四种不同的调用方式. (1)传递CSS选择器(字符串)给$()方法,返回当前文档中匹配该选择器的元素集.可选第二个参数,一个元素或jQuery对象,定义元素查询的 ...
- RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的?
RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的? 文章目录 RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的? 前言 项目 ...
- Vuex 4源码学习笔记 - 通过Vuex源码学习E2E测试(十一)
在上一篇笔记中:Vuex 4源码学习笔记 - 做好changelog更新日志很重要(十) 我们学到了通过conventional-changelog来生成项目的Changelog更新日志,通过更新日志 ...
- 雷神FFMpeg源码学习笔记
雷神FFMpeg源码学习笔记 文章目录 雷神FFMpeg源码学习笔记 读取编码并依据编码初始化内容结构 每一帧的视频解码处理 读取编码并依据编码初始化内容结构 在开始编解码视频的时候首先第一步需要注册 ...
- PHP Yac cache 源码学习笔记
YAC 源码学习笔记 本文地址 http://blog.csdn.net/fanhengguang_php/article/details/54863955 config.m4 检测系统共享内存支持情 ...
- jQuery源码学习之Callbacks
jQuery源码学习之Callbacks jQuery的ajax.deferred通过回调实现异步,其实现核心是Callbacks. 使用方法 使用首先要先新建一个实例对象.创建时可以传入参数flag ...
最新文章
- 京东2017校招前端主观题汇总
- [转]---UAP中如何判断当前APP在哪个平台设备上运行
- CTF-Misc-常用知识点
- Delphi替换PE图标资源
- WIF - claims-based identity
- ANT简明教程[转载]
- vue 拖拽(笔记)
- 男女薪酬差异扩大 2018年女性薪酬不及男性8成?
- 【渝粤教育】国家开放大学2019年春季 1152教育法学 参考试题
- php pdoconnection,php使用pdo连接报错Connection failed SQLSTATE的解决方法
- Windows自动关机命令
- macbook pro安装JDK
- 时间片轮转调度算法(Java)
- 【JavaScript】英雄联盟官网作品介绍,轮播图的实现
- CC2530按键控制呼吸灯
- 第17节 三个败家子(17)——少侠孙坚
- PLC的顺控继电器(SCR编程)总结
- 反光衣自动识别检测 opencv
- 在官方网站获得JMeter工具的步骤
- 伪元素(3)-解决IE6/IE7/IE8不支持before,after问题
热门文章
- linux硬件控制流,Linux系统学习笔记:异常控制流
- 如何去选取第一批要阅读的论文?_MPA论文如何选题?
- linux vim编辑器主要作用,Linux-vim编辑器
- java寄存器_汇编学习 1 寄存器的作用 寻址方式 - DraculaW - JavaEye技术网站
- 2021年春季学期-信号与系统-第十五次作业参考答案-第七小题参考答案
- 实验研究信标无线电能输出功率的因素
- 高频信号对LM386直流偏置的影响
- python笔试题奥特曼打怪兽_python笔试做错的题目
- mysql have_mysql having用法解析
- python重复执行_python flask schedule重复运行 任务被重复执行问题 解决方案