讀Zepto源碼之Stack模塊

Stack 模塊爲 Zepto 添加了 addSelfend 方法。javascript

讀 Zepto 源碼系列文章已經放到了github上,歡迎star: reading-zeptojava

源碼版本

本文閱讀的源碼爲 zepto1.2.0git

改寫原有的方法

'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 的屬性,用來保存原來的集合。github

.addSelf()

$.fn.andSelf = function() {
  return this.add(this.prevObject || $())
}複製代碼

addSelf 方法是在鏈式調用以上方法的時候,將原來的集合添加到當前的集合中。add 方法的分析能夠看《讀Zepto源碼之Callbacks模塊》。微信

.end()

$.fn.end = function() {
  return this.prevObject || $()
}複製代碼

end 方法是將集合還原到前一個狀態,其實就是將上一個集合返回。app

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)工具

最後,全部文章都會同步發送到微信公衆號上,歡迎關注,歡迎提意見: ui

做者:對角另外一面this

相關文章
相關標籤/搜索