献给和我合作的过得前端童靴们:jquery源码分析--序2
2016-03-25 17:20
591 查看
jquery 源码分析
jquery 版本 1.12.2
浏览器: ie, 谷歌,火狐, 360
编辑器:Notepad++
上篇说到jquery 加载的时候jquery把自己初始化成window的方法供全局调用。这一篇我们分析jquery这个方法究竟做了哪些事情?
该段代码就是定义jQuery的这个函数。里面只有一段代码:
这里有两个信息
1. jQuery.fn 是什么?
2. init是怎样创建jQuery对象的?
首先我们来看第一个问题: jQuery.fn 是什么?
我又精简了一下代码:
prototype是返回对象类型原型的引用,可以实现继承。那么jQuery.fn是可以称之为jQuery的父类或者原型对象。
父对象提供了以下方法:toArray,get,pushStack,each,map,slice,first,last,eq,end,push,sort,splice。 大部分方法是不是很眼熟?在http://jquery.cuishifeng.cn/手册中大部分方法都能被找到。
注意下这个属性: “constructor: jQuery”。 看到这里才知道 原来之前所说的”jQuery”函数就是jQuery的构造函数呀!“$(‘a’)”其实就是调用jQuery的构造函数,创建jQuery对象!!!!(可以这么去理解,或者说作者希望去被这么理解,但实际上他用一个函数去包装了创建对象的创建。constructor并不具备构造函数的实际责任)
第二个问题 init是怎样创建jQuery对象的?
为了方便我又做了一下精简:
init就是jQuery.fn的一个方法。 那么this就是 jQuery.fn的实例,然后jQuery.fn又是jQuery的父对象。所以这块就是返回了jQuery对象。
我们得到了jQuery对象的构造函数,当jQuery加载的时候有没有创建过jQuery对象呢?我们来实验一下:
jquery源码:
谷歌浏览器debug:
很惊奇的发现,在加载的过程中,创建了5个jquery对象。下一篇我们就来分析这5个jQuery对象。
jquery 版本 1.12.2
浏览器: ie, 谷歌,火狐, 360
编辑器:Notepad++
上篇说到jquery 加载的时候jquery把自己初始化成window的方法供全局调用。这一篇我们分析jquery这个方法究竟做了哪些事情?
该段代码就是定义jQuery的这个函数。里面只有一段代码:
return new jQuery.fn.init( selector, context )
这里有两个信息
1. jQuery.fn 是什么?
2. init是怎样创建jQuery对象的?
首先我们来看第一个问题: jQuery.fn 是什么?
我又精简了一下代码:
jQuery.fn = jQuery.prototype = {}
prototype是返回对象类型原型的引用,可以实现继承。那么jQuery.fn是可以称之为jQuery的父类或者原型对象。
父对象提供了以下方法:toArray,get,pushStack,each,map,slice,first,last,eq,end,push,sort,splice。 大部分方法是不是很眼熟?在http://jquery.cuishifeng.cn/手册中大部分方法都能被找到。
注意下这个属性: “constructor: jQuery”。 看到这里才知道 原来之前所说的”jQuery”函数就是jQuery的构造函数呀!“$(‘a’)”其实就是调用jQuery的构造函数,创建jQuery对象!!!!(可以这么去理解,或者说作者希望去被这么理解,但实际上他用一个函数去包装了创建对象的创建。constructor并不具备构造函数的实际责任)
第二个问题 init是怎样创建jQuery对象的?
为了方便我又做了一下精简:
init = jQuery.fn.init = function( selector, context, root ) { return this; }
init就是jQuery.fn的一个方法。 那么this就是 jQuery.fn的实例,然后jQuery.fn又是jQuery的父对象。所以这块就是返回了jQuery对象。
我们得到了jQuery对象的构造函数,当jQuery加载的时候有没有创建过jQuery对象呢?我们来实验一下:
html代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="jquery-1.12.2.js" ></script> </head> <body> <div class="search_main clearfix"></div> </body> </html>
jquery源码:
谷歌浏览器debug:
很惊奇的发现,在加载的过程中,创建了5个jquery对象。下一篇我们就来分析这5个jQuery对象。
相关文章推荐
- JQuery的复选框的attr("checked")一直为undefined问题
- 用jQuery实现搜索框的过滤效果
- 关于jQuery选择器的完成介绍(转载)
- jQuery基础-选择图片并赋值
- 如何判断jquery选择器选择结果是否存在
- jQuery基础-div层的移动
- jQuery操作HTM元素的常见事件
- jquery validate自定义扩展实例,以及一些常用验证
- jqprint 打印网页 jQuery print plugin
- jQuery监听文件上传实现进度条效果
- jqueryUI slider插件
- JQuery 绑定select标签的onchange事件
- 一些在线库(jquery等)
- jQuery异步框架探究1:jQuery._Deferred方法
- jquery随便小特效之常见网站顶部导航栏
- jquery随笔小特效之jd菜单栏
- jquery on 添加img事件
- jQuery事件绑定.on()简要概述及应用
- jQuery对象到底是什么
- IE浏览器兼容iframe跳转