jQuery().end()的内部实现及源码分析
2013-11-29 09:22
316 查看
jQuery().end()的作用是返回当前jQuery对象的上一个状态。
1、end()源码:
// 所有通过pushStack方法获得的jQuery对象都可以通过end方法返回之前的状态
// 如果有preObject对象这返回该对象,否则调用构造函数返回jQuery的空对象
end: function() {
return this.prevObject || this.constructor(null);
},
end()的源码很简单,但是需要了解prevObject是如何形成的,所以需要了解pushStack方法都做了什么。
2、pushStack()源码:
pushStack: function( elems ) {
// 生成一个jQuery对象
// merge()是绑定在jQuery构造函数上的一个方法,外部无法调用。其作用是将第二个参数合并到第一个参数中。
// 该句讲elems合并到一个空的jQuery对象中,形成一个有内容的jQuery对象。
var ret = jQuery.merge( this.constructor(), elems );
// merge产生的jQuery对象设置一个prevObject属性,并将当前(merge之前的)的对象赋值给prevObject
ret.prevObject = this;
ret.context = this.context;
return ret;
},
1、end()源码:
// 所有通过pushStack方法获得的jQuery对象都可以通过end方法返回之前的状态
// 如果有preObject对象这返回该对象,否则调用构造函数返回jQuery的空对象
end: function() {
return this.prevObject || this.constructor(null);
},
end()的源码很简单,但是需要了解prevObject是如何形成的,所以需要了解pushStack方法都做了什么。
2、pushStack()源码:
pushStack: function( elems ) {
// 生成一个jQuery对象
// merge()是绑定在jQuery构造函数上的一个方法,外部无法调用。其作用是将第二个参数合并到第一个参数中。
// 该句讲elems合并到一个空的jQuery对象中,形成一个有内容的jQuery对象。
var ret = jQuery.merge( this.constructor(), elems );
// merge产生的jQuery对象设置一个prevObject属性,并将当前(merge之前的)的对象赋值给prevObject
ret.prevObject = this;
ret.context = this.context;
return ret;
},
相关文章推荐
- PAM 的应用开发和内部实现源码分析
- jQuery缓存实现的分析-及源码解读
- jQuery 2.0.3 源码分析 Deferred(最细的实现剖析,带图)
- Kubernetes ResourceQuotaController内部实现原理及源码分析
- jQuery实现DOM加载方法源码分析
- CoreCLR源码探索(四) GC内存收集器的内部实现 分析篇
- jQuery实现jsonp源码分析(京东2015面试)
- redis源码分析 dict字典的实现和内部应用
- Jquery源码分析与简单模拟实现
- 源码分析五(HashSet的内部实现)
- HashMap内部实现及源码分析
- jQuery 2.0.3 源码分析 回溯魔法 end()和pushStack()
- jQuery源码分析系列(35) : Ajax - jsonp的实现与原理
- jQuery 2.0.3 源码分析 回溯魔法 end()和pushStack()
- jQuery 2.0.3 源码分析 Deferred(最细的实现剖析,带图)
- jquery dom ready, jqery2.1.1实现-源码分析
- ddpowerzoomer.js利用jQuery扩展,实现对图片局部放大功能(源码分析)
- jquery内部实现原理分析
- jQuery源码分析10--方法链式调用的实现
- Hadoop跨集群数据拷贝工具DISTCP内部源码实现分析