Stack 模塊為 Zepto 添加了 addSelf 和 end 方法。
讀 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》
系列文章
- 讀Zepto源碼之代碼結構
- 讀Zepto源碼之內部方法
- 讀Zepto源碼之工具函數
- 讀Zepto源碼之神奇的$
- 讀Zepto源碼之集合操作
- 讀Zepto源碼之集合元素查找
- 讀Zepto源碼之操作DOM
- 讀Zepto源碼之樣式操作
- 讀Zepto源碼之屬性操作
- 讀Zepto源碼之Event模塊
- 讀Zepto源碼之IE模塊
- 讀Zepto源碼之Callbacks模塊
- 讀Zepto源碼之Deferred模塊
- 讀Zepto源碼之Ajax模塊
- 讀Zepto源碼之Assets模塊
- 讀Zepto源碼之Selector模塊
- 讀Zepto源碼之Touch模塊
- 讀Zepto源碼之Gesture模塊
- 讀Zepto源碼之IOS3模塊
- 讀Zepto源碼之Fx模塊
- 讀Zepto源碼之fx_methods模塊
附文
- 譯:怎樣處理 Safari 移動端對圖片資源的限制
License
署名-非商業性使用-禁止演繹 4.0 國際 (CC BY-NC-ND 4.0)
最後,所有文章都會同步發送到微信公眾號上,歡迎關注,歡迎提意見:
作者:對角另一面