您的当前位置:首页正文

读Zepto源码之Stack模块

来源:华拓网

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

源码版本

GitBook

改写原有的方法

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

.end()

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

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

系列文章

附文

License

最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:

作者:对角另一面