扩展 Dojo 模块
来源:互联网 发布:gta4 sparkiv车辆数据 编辑:程序博客网 时间:2024/05/09 03:15
扩展 Dojo 模块
在 Dojo 中,定义一个新的模块是很容易的。我们来看一个简单的例子,假设我们要创建的新模块是 util.math.Calculator。先在 Dojo 安装目录下创建目录 util/math
在目录 util/math 下,创建一个叫 Calculator.js 的文件,在该文件中写入清单 4 所示的代码。
清单 4. Calculator.js
// 注册模块名 dojo.provide("util.math.Calculator"); // 声明 Dojo 类 dojo.declare("util.math.Calculator",null,{ add:function(a,b){ return a+b; }, multiply:function(a,b){ return a*b; } });
现在你就可以开始使用这个新的模块了,代码如清单 5 所示。
清单 5. 使用新模块
dojo.require("util.math.Calculator"); var c=new util.math.Calculator(); alert(c.add(1,2)); alert(c.multiply(3,2));
<!doctype html><html lang="en" dir="ltr"><head> <title>Dijit</title><link rel="stylesheet" href="dijit/themes/claro/claro.css" /><style type="text/css">body, html { font-family:helvetica,arial,sans-serif; font-size:90%; }</style><script src="dojo/dojo.js" djConfig="parseOnLoad:true"></script><script>dojo.require("dojo.parser");dojo.require("util.math.Calculator"); dojo.addOnLoad(function() { var c=new util.math.Calculator(); alert(c.add(1,2)); alert(c.multiply(3,2));}); </script></head><body class="claro"></body></html>
在清单 4 中,出现了 dojo.provide 和 dojo.declare 函数。dojo.provide 的功能是向 dojo 模块注册表中注册一个新的模块,dojo.declare 则是用来声明模块中的类。通过这个例子可以看出,在 Dojo 中创建一个新的模块是非常简单的。现在让我们来对清单 4 中的代码作些扩展,在 Calculator.js 中加入清单 6 中的代码。
清单 6. 扩展 Calculator
util.math.Calculator.subtract=function(a,b){ return a-b; }; dojo.declare("util.math.Calculator2",null,{ subtract:function(a,b){ return a-b; } }); dojo.declare("a.b",null,{ hello:function(){ alert("Hello"); } });
新的测试代码如清单 7 所示:
清单 7. 测试代码
dojo.require("util.math.Calculator"); alert((new util.math.Calculator()).add(1,2)); alert((new util.math.Calculator2()).subtract(10,5)); alert(util.math.Calculator.subtract(10,5)); (new a.b()).hello();
<!doctype html><html lang="en" dir="ltr"><head> <title>Dijit</title><link rel="stylesheet" href="dijit/themes/claro/claro.css" /><style type="text/css">body, html { font-family:helvetica,arial,sans-serif; font-size:90%; }</style><script src="dojo/dojo.js" djConfig="parseOnLoad:true"></script><script>dojo.require("dojo.parser");dojo.require("util.math.Calculator"); dojo.addOnLoad(function() { alert((new util.math.Calculator()).add(1,2)); alert((new util.math.Calculator2()).subtract(10,1)); alert(util.math.Calculator.subtract(10,5)); (new a.b()).hello();}); </script></head><body class="claro"></body></html>
通过这个小修改,我们可以发现很多有趣的现象。第一,在一个模块中,不但可以定义 Dojo 类,还可以定义一个普通的函数,如本例中的 util.math.Calculator.subtract,这与 java 中的包是不一样的,java 的包中只能定义类;第二,在一个模块中,可以定义多个 Dojo 类,如本例中的 util.math.Calculator2 与 a.b,这与 java 的包类似;第三,模块的名字与 Dojo 中类的命名实际上没有必然的联系,两者在语法上并没有一致性的要求,但从代码的可维护性来考虑,建议保持模块名字与实际的类名一致。
Calculator.js
// 注册模块名 dojo.provide("util.math.Calculator"); // 声明 Dojo 类 dojo.declare("util.math.Calculator",null,{ add:function(a,b){ return a+b; }, multiply:function(a,b){ return a*b; } }); util.math.Calculator.subtract=function(a,b){ return a-b; }; dojo.declare("util.math.Calculator2",null,{ subtract:function(a,b){ return a-b; } }); dojo.declare("a.b",null,{ hello:function(){ alert("Hello"); } });
0 0
- 扩展 Dojo 模块
- dojo.string模块详述
- dojo之模块分支
- dojo dom-form模块
- dojo(一):创建模块
- dojo/_base/window模块
- dojo/_base/declare模块
- dojo/_base/lang模块
- dojo/aspect模块
- Dojo 扩展 javascript 核心库 - dojo.hitch
- Dojo 扩展 javascript 核心库 - dojo.hitch
- DOJO Study Note(7) - Dojo 的扩展
- Dojo 扩展 javascript 核心库 - dojo.hitch
- dojo切面编程(dojo/aspect模块)
- dojo微模板dojo/string模块
- 【DOJO学习经验总结】强大的DOJO:dojo/aspect模块
- dojo常见模块及方法
- Dojo自定义模块的国际化
- (OK) Fedora 24 开机自动启动脚本 - rc.local - rc-local.service
- Java SE学习笔记-多态
- Python基础入门—常用函数笔记
- C#控制台基础 泛型中default的用法,值类型位0,引用类型为null
- xcodebuild自动打包脚本与自动上传蒲公英脚本
- 扩展 Dojo 模块
- 平台2.0
- 最长公共子串(动态规划)
- memcache的安装和使用
- 通过do-while循环来实现菜单的返回功能
- POJ 1611 The Suspects(并查集)
- redis的安装和使用
- AlertDialog对话框的使用(四种)
- 在OpenShift云空间上部署java web应用