本文主要是介绍dojo中类的声明与继承,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在Dojo工具箱中,dojo/_base/declare模块是创建类的基础。declare允许开发者实现类多继承,从而创建有弹性的(灵活的)代码, 避免写重复的代码。 Dojo, Digit, Dojox模块都使用了declare。
1 语法
declare(className,superclass,props);
参数 | 类型 | 描述 |
---|---|---|
className | string | 可选参数。存储在已创建原型中的“declaredClass”属性中的构造函数的可选名称(松散地说,“类”)。它将用作创建的构造函数的全局名称。 |
superclass | Function | Function[] | 可以是null、函数或函数数组。这个参数指定了一个基类列表(列表的第一个类将是新创建类的原型)。 |
props | Object | 将其属性复制到创建的原型的对象。通过将实例初始化函数设置为一个名为“构造函数”的属性来添加实例初始化函数。 |
注:
- 如果一个新类要继承多个类,即superclass参数包含多个基类,那么在列表的第一个类将是新创建类的原型,剩下的被认为为”多态”(复制它们的属性和方法到新类)。
- 如果一个属性或者方法在多个被继承的类中,新的类会从左到右继承父类的属性和方法。 后面类的属性和方法具有最高的优先权,即最后一个类的属性或者方法会被使用。
- 如果props 参数提供的属性或方法如果跟被继承的类的属性或方法同名,那么会重写同名的方法或属性。
2 示例
//定义基类Person
declare("Person", null,{name:null,age:null,constructor: function(args){this.name = args.name;this.age = args.age;},getName:function(){return this.name;},getAge:function(){console.log(this.age);}
});
})
2.1 单继承
下面定义了Employee
类和Shareholder
类,它们都继承于Person
类。Employee
类添加了workExperience
属性,并重写了Person
类中的getName
方法,同时添加了getWorkExperience
和getInput
方法。
Shareholder
类添加了share
属性,并添加了getShare:function
方法。
//下面定义了类Employee,其继承于Person类
declare("Employee", Person,{workExperience:null,constructor:
这篇关于dojo中类的声明与继承的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!