Stack
模塊爲 Zepto
添加了 addSelf
和 end
方法。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
$.fn.andSelf = function() { return this.add(this.prevObject || $()) }
addSelf
方法是在鏈式調用以上方法的時候,將原來的集合添加到當前的集合中。add
方法的分析能夠看《讀Zepto源碼之Callbacks模塊》。微信
$.fn.end = function() { return this.prevObject || $() }
end
方法是將集合還原到前一個狀態,其實就是將上一個集合返回。app
《reading-zepto》函數
署名-非商業性使用-禁止演繹 4.0 國際 (CC BY-NC-ND 4.0)工具
最後,全部文章都會同步發送到微信公衆號上,歡迎關注,歡迎提意見: this
做者:對角另外一面spa