dojo源码里,大量使用 dojo.mixin、dojo.extend、dojo.declare 三个方法。作用均为扩展dojo基类。
一、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}
二、dojo.extend
dojo.extend用于扩展一个类对象,在实际应用中我主要用来扩展dojo控件。如给dijit.Dialog扩展一个setTitle方法
dojo.extend(dijit.Dialog,{
setTitle:function(name){
this.set('title',name)
}
})
这样在创建Dialog对象后,就包含的 setTitle 的方法。
三、dojo.declare
dojo.declare在控件里被大量应用,原因是dojo.declare可以声明一个类,而不污染继承的类。可以用面向对象语言里的多重继承理解。比如 我要声明一个对话框类,这个对话框有特殊的样式。
dojo.declare(
"myDialog",
dijit.Dialog,Arial'"> {
style:...,Arial'"> setTitle:function(...){...}
)
可以比较方便的继承控件,编写自己的控件