dojo的dojo.mixin

// some sample data
var data = {
identifier: 'id',
label: 'id',
items: []
};

var data_list = [
{"Heard": true, "Checked": "True", "Genre":"Easy Listening", "Artist":"Bette Midler", "Year":2003, "Album":"Bette Midler Sings the Rosemary Clooney Songbook", "Name":"Hey There", "Length":"03:31", "Track":4, "Composer":"Ross, Jerry 1926-1956 -w Adler, Richard 1921-", "Download Date":"1923/4/9", "Last Played":"04:32:49"},
{"Heard": true, "Checked": "True", "Genre":"Classic Rock", "Artist":"Jimi Hendrix", "Year":1993, "Album":"Are You Experienced", "Name":"Love Or Confusion", "Length":"03:15", "Track":4, "Composer":"Jimi Hendrix", "Download Date":"1947/12/6", "Last Played":"03:47:49"}]

dojo中定义一个data,用作Store的数据源,(可以将整体都放在后台请求的数据中,格式化之后一块返回前台,就不必用js去处理),其中的items部分数据来自后台请求返回的数组data_list 进行格式化,

var len = data_list.length;
var rounds = 1;
for(var i=0; i < rounds * len ; ++i){
data.items.push(dojo.mixin({'id': i+1 }, data_list[i%len]));
}

其中mixin用来填充数据。

dojo源码里,大量使用 dojo.mixin、dojo.extend、dojo.declare 三个方法。作用均为扩展dojo基类。

一、dojo.mixin

dojo.mixin用于扩展一个实例对象,如

var obj = {a:1,b:2}

dojo.mixin(obj,{c:3,d:4})

那么现在的obj为{a:1,b:2,c:3,d:4}

二、dojo.extend

dojo.extend用于扩展一个类对象,在实际应用中我主要用来扩展dojo控件。如给dijit.Dialog扩展一个setTitle方法

dojo.extend(dijit.Dialog,{

     setTitle:function(name){

            this.set('title',name)

    }

})

这样在创建Dialog对象后,就包含的 setTitle 的方法。

三、dojo.declare

dojo.declare在控件里被大量应用,原因是dojo.declare可以声明一个类,而不污染继承的类。可以用面向对象语言里的多重继承理解。比如 我要声明一个对话框类,这个对话框有特殊的样式。

dojo.declare(

    "myDialog",

    dijit.Dialog,

    {

        style:...,

        setTitle:function(...){...}

    }

)

   可以比较方便的继承控件,编写自己的控件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值