读Zepto源码之Stack模块

Stack 模块为 Zepto 添加了 addSelfend 方法。

读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto

源码版本

本文阅读的源码为 zepto1.2.0

改写原有的方法

'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
  }
})

Stack 模块改写了以上这些方法,这些方法在调用的时候,会为返回的结果 ret 添加 prevObject 的属性,用来保存原来的集合。

.addSelf()

$.fn.andSelf = function() {
  return this.add(this.prevObject || $())
}

addSelf 方法是在链式调用以上方法的时候,将原来的集合添加到当前的集合中。add 方法的分析可以看《读Zepto源码之Callbacks模块》。

.end()

$.fn.end = function() {
  return this.prevObject || $()
}

end 方法是将集合还原到前一个状态,其实就是将上一个集合返回。

GitBook

reading-zepto

系列文章

  1. 读Zepto源码之代码结构
  2. 读Zepto源码之内部方法
  3. 读Zepto源码之工具函数
  4. 读Zepto源码之神奇的$
  5. 读Zepto源码之集合操作
  6. 读Zepto源码之集合元素查找
  7. 读Zepto源码之操作DOM
  8. 读Zepto源码之样式操作
  9. 读Zepto源码之属性操作
  10. 读Zepto源码之Event模块
  11. 读Zepto源码之IE模块
  12. 读Zepto源码之Callbacks模块
  13. 读Zepto源码之Deferred模块
  14. 读Zepto源码之Ajax模块
  15. 读Zepto源码之Assets模块
  16. 读Zepto源码之Selector模块
  17. 读Zepto源码之Touch模块
  18. 读Zepto源码之Gesture模块
  19. 读Zepto源码之IOS3模块
  20. 读Zepto源码之Fx模块
  21. 读Zepto源码之fx_methods模块

附文

License

署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)

作者:对角另一面

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吉浦迅科技

DAY21:阅读CUDA Array

762
来自专栏前端知识分享

第185天:百度星座案例

694
来自专栏7号代码

Android网络与数据存储——ContentProvider

这时,其它应用就可以通过该Uri来访问该ContentProvider所暴露的数据了。那Uri究竟是什么呢?

1134
来自专栏IMWeb前端团队

Reflux系列01:异步操作经验小结

本文作者:IMWeb 陈映平 原文出处:IMWeb社区 未经同意,禁止转载 写在前面 在实际项目中,应用往往充斥着大量的异步操作,如ajax请求,定时...

1979
来自专栏nummy

适配器模式

上面的例子中,Fish的并不具有running_speed()方法,所以添加适配器类RunningFish,输出结果为:

652
来自专栏为数不多的Android技巧

Android插件化原理解析——广播的管理

在Activity生命周期管理 以及 插件加载机制 中我们详细讲述了插件化过程中对于Activity组件的处理方式,为了实现Activity的插件化我们付出了相...

662
来自专栏Java后端技术

使用Spring Task轻松完成定时任务

  最近项目中需要使用到定时任务进行库存占用释放的需求,就总结了如何使用Spring Task进行简单配置完成该需求,本文介绍Spring3.0以后自定义开发的...

692
来自专栏Android知识点总结

2-AIV--使用ContentProvider查询联系人

681
来自专栏Coding迪斯尼

VUE+WebPack前端游戏设计:实现外星人的动态下滑特效

892
来自专栏Youngxj

安卓四大组件之ContentProvider-内容提供者

1683

扫码关注云+社区