zoukankan      html  css  js  c++  java
  • dojo 三 类和继承 dojo/_base/declare


    这里要讲有关类的定义、继承和实现。
    官方教程: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'
        });

  • 相关阅读:
    python:HTML转义
    Python 安装 MySQLdb
    C# 获取当前路径方法
    配置 vim Python IDE 开发环境
    python:HTML转义
    Python list去重
    源码探秘
    加号的作用
    多态练习
    在web service用Cache要导入System.Web.HttpRuntime
  • 原文地址:https://www.cnblogs.com/tiandi/p/3415892.html
Copyright © 2011-2022 走看看