在引入zepto
檔案以後,我們就可以使用zepto
的方法,例如$('.selector')
,這是因為下面的**:
window.zepto = zepto;
window.$ = undefined && (window.$ = zepto)
複製**
在window
物件上,我們繫結了zepto
,zepto
這是乙個立即執行函式。如果$
不存在,就把window
上的$
賦值為zepto
。 下面是zepto
的結構:
var zepto = (function () ,
function
z(dom, selector) {}
zepto.z.prototype = z.prototype = $.fn
$.zepto = zepto
return $
})()
複製**
zepto
是乙個立即執行函式,最後返回的是$
。這句**:
zepto.z.prototype = z.prototype = $.fn
複製**
這句**把z
的prototype
指向了$.fn
,這樣z
的例項就繼承了$.fn
的方法。然後前面部分從下面這段**來理解:
zepto.z = function (dom, selector)
複製**
zepto.z
返回的就是z
的例項。這裡就是把兩個物件的prototype
都指向$.fn
。這樣zepto
就具備了z
和$.fn
的方法了。 **寫成了多個模組,有ie
模組,有event
模組,多個模組是如何組織的呢。
(function ($) )(zepto)
複製**
可以看到的是這些模組都是這種方法阻止起來的,用立即函式執行,並且傳入的引數是zepto
,那麼這些就可以使用zepto
的方法了。然後再看看外部的包裹:
(function (global, factory) )
else
factory(global);
})(this, function (window) )
複製**
這是乙個立即函式,往裡邊傳入的引數有兩個,global
和factory
。this
就是global
,也就是window
。如果define
是函式,並且有amd
引數,就表示amd
規範,就往define
函式裡邊傳入函式,否則返回工廠函式factory(global)
。 zepto原始碼分析
首先我們看一下如下 如何給乙個陣列物件新增其他方法 var arr 1,2,3 arr.proto concat array.prototype.concat,push array.prototype.push arr.push 4 1,2,3,4 arr.addclass addclass 我們修...
Zepto原始碼之ie模組
function catch e catch e 這段 的主要作用是改寫 getcomputedstyle 方法。主要是為了 zepto 在不同的瀏覽器下,可以進行相同的操作。通過檢視 我們可以看出主要使用的方法是利用 try catch 來進行異常處理。同時這是乙個立即執行函式,使得我們在載入框架...
zepto原始碼知識點
記錄看原始碼時候不太了解的知識點 matchesselector element.matches element.webkitmatchesselector element.mozmatchesselector element.omatchesselector element.matchessele...