Zepto源码之stack模块
2018-01-11 11:56
337 查看
;(function($){ $.fn.end = function(){ return this.prevObject || $() } $.fn.andSelf = function(){ return this.add(this.prevObject || $()) } 'filter,add,not,eq,first,last,find,closest,parents,parent,children,siblings'.split(',').forEach(function(property){ var fn = $.fn[property] $.fn[property] = function(){ var ret = fn.apply(this, arguments) ret.prevObject = this return ret } }) })(Zepto)
从源码里我们可以看出来, stack 模块主要就是改写了 filter, add, not, eq, first, last, find, closest, parents, parent, children, siblings 等方法。因为我们之前看过这些方法的源码,我们可以知道,这些方法都是返回了一个新的 zepto 对象。那么之前操作的对象则会丢弃,此模块就是为了应对这种操作而设计的,把之前操作的 zepto 对象放入了 prevObject 对象中。形式了一个类似于原型的模型,我们可以一层一层的查询,找到每一次操作的对象。
其中 还添加了两个方法 end, andSelf 方法。简单的分析其源码就是返回上一个操作的 zepto 对象与将之前操作的 zepto 对象插入到现在操作的对象之中。
相关文章推荐
- 读Zepto源码之Stack模块
- 读Zepto源码之Stack模块
- 读Zepto源码之Stack模块
- 一个普通的 Zepto 源码分析(三) - event 模块
- Zepto源码之assets模块
- 读Zepto源码之Form模块
- SaltStack源码分析之pkg状态模块
- Zepto事件模块源码分析
- 读Zepto源码之Data模块
- 读Zepto源码之Callbacks模块
- Zepto源码之callback模块
- Zepto源码之form模块
- 读Zepto源码之assets模块
- 读Zepto源码之Event模块
- SaltStack源码分析之使用logrotate模块
- SaltStack源码分析之:master端执行salt模块大致流程
- 读Zepto源码之Event模块
- 读Zepto源码之Gesture模块
- Zepto源码(2016)——Zepto模块(核心模块)
- 读Zepto源码之Event模块