dojo中类的继承
类似于c# java等后台语言,在基于类的面向对象编程中,通常需要在子类中扩展某些父类的方法,这时可以在子类的方法中,先调用从父类继承的方法,然后再执行子类自定义的操作。凡是使用declare创建的类,可以使用一个特殊的inherited方法,在子类中调用父类中被覆盖的方法,也就是说,当在子类中的任何方法中调用this.inherited时,将调用父类中的同名方法。
例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
var dojoConfig = {
async: true,
packages: [{
name: "js",
location: location.pathname.replace(/\/[^/]*$/, '') + '/js'
}]
};
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
data-dojo-config="async: true"></script>
<script>
require(["js/B"], function (B) {
var x = new B();
dojo.safeMixin(x, {
m1: function () {
this.inherited(arguments);
console.log("X.m1");
},
m2: function () {
//凡是使用declare创建的类 可以使用一个特殊的inherited方法,在子类中调用父类中被覆盖的方法,也就是说,当在子类中的任何方法中调用this.inherited时,将调用父类中的同名方法
debugger;
this.inherited(arguments);
console.log("X.m2");
}
});
document.getElementById("btn").onclick=function () {
x.m2();
}
});
</script>
</head>
<body>
<button id="btn">点击</button>
</body>
</html>
A.js类:
define([
"dojo/_base/declare"
], function (declare) {
var A = declare(null, {
m1: function () {
console.log("A.m1");
},
m2: function () {
debugger;
console.log("A.m2");
}
});
return A;
});
B.js类:
define([
"js/A",
"dojo/_base/declare"
], function (A,declare) {
var B = declare(A, {
m1: function () {
this.inherited(arguments);
console.log("B.m1");
}
});
B.extend({
m2: function () {
debugger;
this.inherited(arguments);
console.log("B.m2");
}
});
return B;
});
结果:
A.m2
B.m2
X.m2
该例中同时也使用了safeMixin方法:

dojo中类的继承的更多相关文章
- python中类的继承
python中类的继承 在python中面向对象编程中实现继承,以下面一个实例进行说明. class SchoolMenber(): # __init__类似于c++中的构造函数 # __init__ ...
- Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template method)
(一)Java中的继承: 关于继承,在Java中类的继承只能是单继承,不像C+++那样灵活,可以多继承,多继承的后果就是各种关系乱套,就相当于一个孩子有2个母亲一样,社会关系的复杂,不利于程序后期的开 ...
- typescript中类的继承
typescript中类的继承用到的是:extends和super 先看一下typescript中类的写法: class Demo{ //类的属性 name:string; age:number; / ...
- Java中类的继承深入剖析
在Java开发中,我们常常用到继承这一概念,可以说继承是Java这类面向对象编程语言的基石.正是有了继承这个概念,使得我们可以创建分等级层次的类.今天小编就和大家一起来深入聊聊Java语言的继承. 在 ...
- 《挑战30天C++入门极限》图例实解:C++中类的继承特性
图例实解:C++中类的继承特性 整个c++程序设计全面围绕面向对象的方式进行,类的继承特性是c++的一个非常非常重要的机制,继承特性可以使一个新类获得其父类的操作和数据结构,程序员只需在新类中 ...
- PHP中类的继承与方法重写
php中类的继承与方法重写,欢迎大神补充指点! <?php namespace _1009; class Demo5 { //实例属性 public $product; public $pric ...
- Python中类的继承代码实例
Python中类的继承代码实例 这篇文章主要介绍了Python中类的继承代码实例,本文直接给出代码及运行效果,需要的朋友可以参考下 相对于C 的继承编写,Python更简洁,而且效率也是很高的,下面编 ...
- 第7.6节 Python中类的继承机制详述
在本章第一节,介绍了面向对象程序设计的三个特征:封装.继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定, ...
- Typescript 中类的继承
Typescript中类的定义与继承与后端开发语言java/C#等非常像,实现起来非常方便,而且代码便于阅读. 用Typescript写较大项目时是非常有优势的. /** * BaseClass */ ...
随机推荐
- postgres_fdw
create extension postgres_fdw; --创建扩展 create server db0 foreign data wrapper postgres_fdw OPTIONS (h ...
- 帝都Day3——各种dp
备注:Day1 Day2记得笔记太233,所以就不发了 备注2:Day4~Day7发不发看心情qaq (7.17持续更新中...) 动态规划A 记忆化搜索 & 动态规划初步 8点15: 杨姓d ...
- PureComponent
前言 React15.3中新加了一个 PureComponent 类,PureComponent 也就是纯组件,取代其前身 PureRenderMixin , PureComponent 是优化 Re ...
- Sharepoint 图片库字段名称(Title)和对应的内部名称(InternalName)
做项目遇到需要查看列表库的内部名称,因为用的是图片库,所以就列出所有对应关系,以备查看方便:
- Testing Round #12 B
Description A restaurant received n orders for the rental. Each rental order reserve the restaurant ...
- springBoot使用外部Tomcat启动项目
实现思路是: 将springBoot项目自带的tomcat在部署的时候不使用. 方法一:将springBoot自带tomcat编辑成只在编译和测试时使用. 转载出处:https://www.edurt ...
- DevOps的工程化
孙敬云 --Worktile高级系统架构师,WTC成员 1.研发的困境 互联网的环境 互联网这个环境比较特别,包括现在不只是互联网,就算是被互联网赋能的这些“互联网+”的企业也在改变,用户在发生变化, ...
- OkHttp工具类
package test; import java.io.File; import java.io.IOException; import java.util.ArrayList; import ja ...
- SQLServer2008 开启远程连接
关闭防火墙 基本的设置可以参考下面的链接: http://wenku.baidu.com/link?url=qjZKZCCoa5T3EGd_rqSjl6Tuhb1wYjIHyXri630QxuAIKu ...
- Centos 6.5 修改默认分辨率
需要两步: 第一步: 编辑/etc/grub.conf文件,删除“nomodeset” 单词 ,翻到该页最后一行,就可以看到该词: 第二步: 删除文件/etc/X11/xorg.conf , Inte ...