dojo的dojo.mixin
来源:互联网 发布:windows关闭端口命令 编辑:程序博客网 时间:2024/04/28 19:52
// 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(...){...}
}
)
可以比较方便的继承控件,编写自己的控件
- dojo的dojo.mixin
- dojo.mixin、dojo.extend、dojo.declare
- dojo.mixin、dojo.extend、dojo.delegate解析
- dojo 混入 miXin 例子
- dojo
- dojo
- Dojo
- dojo
- dojo
- dojo
- dojo-dojo.xhrGet的使用
- 【DOJO学习经验总结】强大的DOJO:dojo/aspect模块
- dojo是什么与选择dojo的理由
- dojo是什么与选择dojo的理由
- DOJO Study Note(7) - Dojo 的扩展
- Dojo 的Ajax, dojo/request <14>
- dojo 的DOM操作 dojo/dom
- 关于Dojo的Grid
- 秒杀多线程第六篇 经典线程同步 事件Event
- 二级三级联动实现
- 自适应高度div内嵌iframe高度被撑开问题解决
- 社会化分享大致步骤,写给和我一样第一次用的人
- EDIUS如何删除创建的工程预设
- dojo的dojo.mixin
- iOS开发之Xcode8控制台输出警告:subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0
- 获取火车票站点名的简称
- self-Executing Anonymous Functions
- java中volatile关键字的含义
- Memcached分布式布置方案--一致性Hash分布机制及其改进
- 秒杀多线程第七篇 经典线程同步 互斥量Mutex
- 2321: [BeiJing2011集训]星器
- PIP设置国内镜像