dojo

2019-11-04  本文已影响0人  Artifacts

类是创建对象的对象
语法:
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
上一篇 下一篇

猜你喜欢

热点阅读