zepto源码阅读
嗯...听说zepto源码量少质高,于是也来读读看:Zepto v1.2.0
总体结构
var Zepto = (function() {
...
return $
})()
window.Zepto = Zepto
window.$ === undefined && (window.$ = Zepto)
这里面相当于将自执行函数的返回值$赋值给window对象的Zepto和$属性
$ = function (selector, context) {
return zepto.init(selector, context)
}
zepto.init = function (selector, context) {
...
return zepto.Z(dom, selector)
}
zepto.Z = function (dom, selector) {
return new Z(dom, selector)
}
function Z(dom, selector) {
var i, len = dom ? dom.length : 0
for (i = 0; i < len; i++) this[i] = dom[i]
this.length = len
this.selector = selector || ''
}
zepto.Z.prototype = Z.prototype = $.fn
初始化方法将传入的dom处理后得到数组,Z函数将这个数组转化成类数组对象,再将Z函数的显式原型赋值$.fn,$.fn则是存在多个处理dom对象方法的对象。 (未完待续)