类
类是创建对象的对象
语法:
dojo.declare(className,superclass,props);
className定义类型的名称,superclass指定了父类型,如果不存在父类,那么就是null。dojo支持多继承,因此superclas可以是一个包含所有父类的数组。props是一个对象,其中包含了该类的所有字段和方法。在props中可以定义一个特殊的函数constructor,constructor在该类型被实例化的时候会被自动调用到,相当于构造函数
类的声明-实例化:
dojo.declare('People',null{
name:'小明',
constructor:fucntion(name){
this.name = name;
}
});
dojo.declare还可以对类进行拓展,进而达到继承
- 定义人这个类:
dojo.declare('People',null{
name:'unknown name',
action:function(){
//do nothing
},
constructor:fucntion(name){
this.name = name;
}
});
- 定义学生这个类:
dojo.declare('Student',people{
school:'',
action:function(){
//do nothing
},
constructor:fucntion(name){
this.name = name;
}
});
//类的使用
var s = new Student('Jack','Harvard');
s.name //Jack
s.schhol //Harvard
s.action //i am studing
定义静态域
dojo.declare('Foo',people{
staticFields:{ num:0 },
add:function(){
this.stacticFields.num++;
}
});
var f1 = new Foo();
var f2 = new Foo();
f1.add();
f2.add();
console.log(f1.staticFields.num) //2
调用父类方法
dojo.declare('Foo',null,{
constructor:fucntion(){ console.log('foo') }
});
dojo.declare('Bar',Foo,{
constructor:fucntion(){ console.log('bar') }
});
var b = new Bar; //自动调用,打印foo bar









网友评论