dojo源碼裏,大量使用 dojo.mixin、dojo.extend、dojo.declare 三個方法。做用均爲擴展dojo基類。
1、dojo.mixin
dojo.mixin用於擴展一個實例對象,如
var obj = {a:1,b:2}
dojo.mixin(obj,{c:3,d:4})
那麼如今的obj爲{a:1,b:2,c:3,d:4}
2、dojo.extend
dojo.extend用於擴展一個類對象,在實際應用中我主要用來擴展dojo控件。如給dijit.Dialog擴展一個setTitle方法
dojo.extend(dijit.Dialog,{
setTitle:function(name){
this.set('title',name)
}
})
這樣在建立Dialog對象後,就包含的 setTitle 的方法。
3、dojo.declare
dojo.declare在控件裏被大量應用,緣由是dojo.declare能夠聲明一個類,而不污染繼承的類。能夠用面嚮對象語言裏的多重繼承理解。好比 我要聲明一個對話框類,這個對話框有特殊的樣式。
dojo.declare(
"myDialog",
dijit.Dialog,
{
style:...,
setTitle:function(...){...}
}
)
能夠比較方便的繼承控件,編寫本身的控件