dojo--inherited

本文介绍了在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、付费专栏及课程。

余额充值