您现在的位置:首页 >> 前端 >> 内容

Stack模块为Zepto添加addSelf和end方法

时间:2017/10/17 10:39:00 点击:

  核心提示:Stack 模块为 Zepto 添加了 addSelf 和 end 方法。源码版本本文阅读的源码为 zepto1.2.0改写原有的方法filter,add,not,eq,first,last,find...

Stack 模块为 Zepto 添加了 addSelf 和 end 方法。

源码版本

本文阅读的源码为 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 方法是将集合还原到前一个状态,其实就是将上一个集合返回。

 

Tags:ST TA AC CK 
作者:网络 来源:对角另一面