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

本文介绍了在Dojo框架中如何定义和使用构造函数来初始化类的属性,以及通过this.inherited调用父类方法实现类的继承。通过具体代码示例展示了不同实例的属性初始化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

与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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值