dojo源碼裏,大量使用 dojo.mixin、dojo.extend、dojo.declare 三個方法。做用均爲擴展dojo基類。this
1、dojo.mixinspa
dojo.mixin用於擴展一個實例對象,如對象
var obj = {a:1,b:2}繼承
dojo.mixin(obj,{c:3,d:4})源碼
那麼如今的obj爲{a:1,b:2,c:3,d:4}it
2、dojo.extendio
dojo.extend用於擴展一個類對象,在實際應用中我主要用來擴展dojo控件。如給dijit.Dialog擴展一個setTitle方法function
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(...){...}
}
)
能夠比較方便的繼承控件,編寫本身的控件