dojo 四 类的构造函数和父方法的调用

与java类一样,在Dojo里也可以定义constructor 构造函数,在创建一个实例时可以对需要的属性进行初始化。
//定义一个类Mqsy_yj

var Mqsy_YJ = declare(null, {
     // The default username
    username: "yanjun",
     
     // The constructor
     constructor: function(args){
        declare.safeMixin(this,args);
    }
});

//实例化
var myIns1 = new Mqsy_YJ();

var myIns2 = new Mqsy_YJ({
    username: "yourname"
});

alert(myIns1.username);//yanjun
alert(myIns2.username);//yourname
args是一个JSON结构,可以包含任意多个需要初始化的属性的key:value值对。
this是指当前实例范围,不影响其他实例。
declare.safeMixin可能有其他用途,这里使用很简单,不详解。


类似于java的super.method()来调用父类的方法,Dojo则可以通过this.inherited来实现。

// Define class A
var A = declare( null , {
     myMethod: function (){
         console.log( "Hello!" );
     }
});
 
// Define class B
var B = declare(A, {
     myMethod: function (){
         // Call A's myMethod
         this .inherited(arguments); // arguments provided to A's myMethod
         console.log( "World!" );
     }
});
 
// Create an instance of B
var myB = new B();
myB.myMethod();
 
 
// Would output:
//      Hello!
//      World!

this.inherited(arguments);arguments指的就是在父类中定义的myMethod。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值