源码分析到这里,我们用一个简单的代码结构对之前的工作做一个总结。并且根据这个结构,把初始化一个zepto对象的过程在捋一捋。
![](https://box.kancloud.cn/2016-07-04_577a764d9fab9.png)
```js
var Zepto = (function(){
var $,
zepto = {}
// ...省略N行代码...
zepto.Z = function(dom, selector) {
dom = dom || []
dom.__proto__ = $.fn
dom.selector = selector || ''
return dom
}
zepto.init = function(selector, context) {
var dom
// 针对参数情况,分别对dom赋值
// 最终调用 zepto.Z 返回的数据
return zepto.Z(dom, selector)
}
$ = function(selector, context){
return zepto.init(selector, context)
}
$.fn = {
// 里面有若干个工具函数
}
// ...省略N行代码...
return $
})()
window.Zepto = Zepto
window.$ === undefined && (window.$ = Zepto)
```