dojo(一):创建模块
1、使用AMD(异步模块定义),通过向加载器注册来定义一个模块。
注:什么是加载器?加载器实际上就是一些js代码,他们处理定义和加载模块的后台逻辑。当你加载了dojo.js或者require.js,你就获得了一个 AMD加载器。加载器定义了一些和require、define全局函数合作的函数。
全局函数define允许你向加载器注册一个模块。下面我们看一些例子:
1
2
3
4
|
define({
library:
'dojo'
,
version: 1.9
});
|
function
(){
var
privateValue = 0;
return
{
(){
privateValue++;
(){
privateValue--;
(){
privateValue;
};
上面的例子,我们向define传递了一个函数。这个函数会被执行,并且它的返回值会被当做我们所定义的模块别加载器存储。通常情况下,模块会返回一个构造器,但是某些情况它也可以用来返回一个单独的对象。
2、constructor方法
constructor方法是一个特殊的方法。constructor方法会在类实例化的时候调用,并在新对象的作用范围中执行。这表示,this对象指向实例而不是原来的类。constructor方法接受任意数目的实例化参数。
3、this.inherited(arguments)
虽然完全覆盖父类的方法很有用,但有时,继承链上的每个父类的构造函数都应该被执行,以保持原来的功能。这就是this.inherited(arguments)所带来的便利。this.inherited(arguments)会调用父类中的同名方法。
4、Using Plugins
除了常规的模块,AMD加载器还提供一种叫做plugin的特殊模块。Plugins用来扩展加载器除了加载AMD模块之外的新特性。Plugins和普通模块的加载一样,不过plugins在模块id后面添加!来标识这是一个plugin请求。!后面的数据直接传递给插件进行处理。Dojo自带了一些plugins,最重要的几个是dojo/text,dojo/i18n,dojo/has和dojo/domReady。
dojo/domReady介绍
dojo/domReady用来替换dojo.ready.在DOM加载完毕之前,它不会被解析。