这里要讲有关类的定义、继承和实现。
官方教程:http://dojotoolkit.org/documentation/tutorials/1.7/declare/
类的声明是通过declare
这个方法来实现的。
define(['dojo/_base/declare'],function(declare){
//第一个declare,声明类my.A
  declare('my.A',null,{
       
pp1 : 1,
        pp2 : 'b',
        dd : function(a1){
           
alert(a1);
        }
    });
//第二个declare,声明类my.B,继承至my.A
   
declare('my.B',my.A,{
        pp1 : 2,
        pp3 : 'c',
        dd :
function(a1,a2){
            alert(a1 + a2);
        }
    });
//第三个declare,多父类继承
    declare('my.C',[my.A,
my.B],{
        pp1 : 3,
        pp3 : 'd'
        dd :
function(a1,a2,a3){
            alert(a1 + a2 + a3);
        }
   
});
});

以上代码为superClass.js文件的全部内容。
这里又见到了define
这个方法。
声明类需要declare 这个方法,define 通过引用
dojo/_base/declare 来引入。
declare
包含三个参数,第一个为所声明的类的名称,可忽略,当用于Dojo的parser时则必要;
第二个为父类,如果没有则为null;第三个就是类体,包括属性和方法。
在第一个declare
中,my.A 为声明的类的全名,my
为命名空间名,A为类名。
null表示它没有父类。
pp1为整型属性,pp2为字符型属性,dd为方法,它们都包含于一组{}内作为类的实体内容。
在html中对类my.A的实现和使用

require(['superClass'],
function(){
        var mm = new my.A();//实现
        mm.dd(mm.pp2);//alert
pp2的内容为'b'
        mm.pp2 = 'bbbb';//设置pp2的值
        mm.dd(mm.pp2);//alert
pp2的内容为‘bbbb’
   
});

在第二个declare中,类名为my.B,my.A作为父类,在类体中将pp1的默认值设为2,新增属性pp3,并重写了方法dd。
在html中对类my.B的实现和使用

require(['superClass'],
function(){
        var mm1 = new my.B();//实现
        mm1.dd(mm1.pp1,
mm1.pp2);//'2b'
        mm1.pp2 = 'ab';//设置pp2的值
        mm1.dd(mm1.pp2,
mm1.pp3);//'abc'
   
});

在第三个declare中,类名为my.C,继承了多个父类my.A和my.B,重置了pp1和pp3的默认值,并重写了方法dd。
多个父类的继续是父类们放在一个数组中为参数传入。
在html中对类my.C的实现和使用

require(['superClass'],
function(){
        var mm2 = new my.C();//实现
        mm2.dd(mm2.pp1,
mm2.pp2, mm2.pp3);//'3bd'
        mm2.pp2 = 'ab';//设置pp2的值
       
mm2.dd(mm2.pp1, mm2.pp2, mm1.pp3);//'3abd'
    });

dojo 三 类和继承 dojo/_base/declare的更多相关文章

  1. ES6 class类 静态方法及类的继承

    一.class类 ES6之前都是定义函数以及函数的原型对象实现类型, 如果想要实现共享构造函数成员,可以用prototype来共享实现 ES6出现之后,使用class类的概念来实现原型的继承 二,静态 ...

  2. JavaScript 面向对象的编程(三) 类的继承

    定义父类和子类的继承关系 //声明父类 function SuperClass(){ this.superValue = true; } //为父类添加共有方法 SuperClass.prototyp ...

  3. UML类图(上):类、继承和实现

    面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...

  4. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  5. (转)Java:类与继承

    原文地址: http://www.cnblogs.com/dolphin0520/p/3803432.html 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大 ...

  6. javascript面向对象系列第三篇——实现继承的3种形式

    × 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...

  7. Java编程里类的继承

    今天,我们将要讨论的内容是Java里面类的继承的相关概念. 说到继承,我相信大家都不陌生.生活中,子承父业,子女继承父母的财产,这就是继承.实际上,Java里的继承也是如此.对于一个类来说,它的数据成 ...

  8. Java:类与继承

    Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知 ...

  9. 深入理解OOP(三):多态和继承(动态绑定和运行时多态)

    在前面的文章中,我们介绍了编译期多态.params关键字.实例化.base关键字等.本节我们来关注另外一种多态:运行时多态, 运行时多态也叫迟绑定. 深入理解OOP(一):多态和继承(初期绑定和编译时 ...

随机推荐

  1. 02.JSP的3个编译指令

    本章介绍JSP的3个编译指令,在JSP中常见的编译指令有如下3个:         1.page:用于针对当前页面的指令.         2.include:用于指定包含另一个页面.         ...

  2. JS 学习笔记--5---对象和数组

    1.Object类型(引用类型) 不具备多少功能,但是对于在ECMAScript中存储和传递数据确实,确是很理想的选择. 创建方式:(1).使用new Object();方式创建对象,然后对对象进行设 ...

  3. PKUSC滚粗记

    本来想考得这么烂还是别写了,后来想想毕竟是我高中难得的一次经历,靠脑子记的话我这脑残患者将来肯定会忘了啊……QwQ 好像跟我一样用这个题目的神犇都签了一本QwQ Day 0 来的路上我校其他三位OIe ...

  4. smaa github iryoku

    dx10 demo 这东西我没法跑nsight ...这就坑大了 里面有个 RenderTargetCollection这个东西里面有很多 rendertargets 最让我苦恼的就是 sceneRT ...

  5. ExtJS与jQuery的一点细节上的对比

    首先说明这不是一篇完整解读ExtJS和jQuery所有方面差异的文章,只是针对我个人刚看了两天的jQuery产生的一些疑问的整理.之前用过一段时间ExtJS,了解ExtJS的一些机制.现在做移动开发, ...

  6. DreamFactory service platform 将DB发布成restful service

    PPT:http://www.slideshare.net/DreamFactorySoftware/angularjs-and-rest-made-simple blog:http://blog.d ...

  7. SQLserver分页查询实例

    Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询 ...

  8. elasticsearch 八、重要的配置更改

    http://jingyan.baidu.com/article/7908e85c9fc626af491ad263.html

  9. 初始JSON

    SON是一种传输数据的格式(以对象为样板,本质上就是对象,但用途有区别,对象就是本地用的,json是用来传输的 JSON的两种静态方法: 1.JSON.parse();  string --> ...

  10. 常用搜索引擎的算分,你get了嘛?

    搜索引擎发展至今,已公布了多种算法.作为SEOER的你,还不懂,就out啦.懂了不会用,也是然并卵的一种行为.了解算法知识并不懂得如何把算法实践于SEO工作的你,还是处于学生思维,是时候该升级了.且听 ...