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(...){...}
}
)
能够比较方便的继承控件,编写本身的控件