dojo中类的声明与继承

2023-12-06 23:08
文章标签 声明 继承 dojo 中类

本文主要是介绍dojo中类的声明与继承,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Dojo工具箱中,dojo/_base/declare模块是创建类的基础。declare允许开发者实现类多继承,从而创建有弹性的(灵活的)代码, 避免写重复的代码。 Dojo, Digit, Dojox模块都使用了declare。

1 语法

declare(className,superclass,props);

参数类型描述
classNamestring可选参数。存储在已创建原型中的“declaredClass”属性中的构造函数的可选名称(松散地说,“类”)。它将用作创建的构造函数的全局名称。
superclassFunction | Function[]可以是null、函数或函数数组。这个参数指定了一个基类列表(列表的第一个类将是新创建类的原型)。
propsObject将其属性复制到创建的原型的对象。通过将实例初始化函数设置为一个名为“构造函数”的属性来添加实例初始化函数。

注:

  • 如果一个新类要继承多个类,即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方法,同时添加了getWorkExperiencegetInput方法。
Shareholder类添加了share属性,并添加了getShare:function方法。

//下面定义了类Employee,其继承于Person类
declare("Employee", Person,{workExperience:null,constructor: 

这篇关于dojo中类的声明与继承的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/463690

相关文章

C++11委托构造函数和继承构造函数的实现

《C++11委托构造函数和继承构造函数的实现》C++引入了委托构造函数和继承构造函数这两个重要的特性,本文主要介绍了C++11委托构造函数和继承构造函数的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、委托构造函数1.1 委托构造函数的定义与作用1.2 委托构造函数的语法1.3 委托构造函

Java 继承和多态的作用及好处

《Java继承和多态的作用及好处》文章讲解Java继承与多态的概念、语法及应用,继承通过extends复用父类成员,减少冗余;多态实现方法重写与向上转型,提升灵活性与代码复用性,动态绑定降低圈复杂度... 目录1. 继承1.1 什么是继承1.2 继承的作用和好处1.3 继承的语法1.4 子类访问父类里面的成

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py

Python多重继承慎用的地方

《Python多重继承慎用的地方》多重继承也可能导致一些问题,本文主要介绍了Python多重继承慎用的地方,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录前言多重继承要慎用Mixin模式最后前言在python中,多重继承是一种强大的功能,它允许一个

详解C++中类的大小决定因数

《详解C++中类的大小决定因数》类的大小受多个因素影响,主要包括成员变量、对齐方式、继承关系、虚函数表等,下面就来介绍一下,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 非静态数据成员示例:2. 数据对齐(Padding)示例:3. 虚函数(vtable 指针)示例:4. 继承普通继承虚继承5.

Golan中 new() 、 make() 和简短声明符的区别和使用

《Golan中new()、make()和简短声明符的区别和使用》Go语言中的new()、make()和简短声明符的区别和使用,new()用于分配内存并返回指针,make()用于初始化切片、映射... 详细介绍golang的new() 、 make() 和简短声明符的区别和使用。文章目录 `new()`

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。

C++中类的构造函数调用顺序

当建立一个对象时,首先调用基类的构造函数,然后调用下一个派生类的 构造函数,依次类推,直至到达派生类次数最多的派生次数最多的类的构造函数为止。 简而言之,对象是由“底层向上”开始构造的。因为,构造函数一开始构造时,总是 要调用它的基类的构造函数,然后才开始执行其构造函数体,调用直接基类构造函数时, 如果无专门说明,就调用直接基类的默认构造函数。在对象析构时,其顺序正好相反。