dojo(一):创建模块

        1、使用AMD(异步模块定义),通过向加载器注册来定义一个模块。

      注:什么是加载器?加载器实际上就是一些js代码,他们处理定义和加载模块的后台逻辑。当你加载了dojo.js或者require.js,你就获得了一个 AMD加载器。加载器定义了一些和require、define全局函数合作的函数。
       全局函数define允许你向加载器注册一个模块。下面我们看一些例子:

1
define(5);
Not very sophisticated, but valid - the value of this module is the number 5.
1
2
3
4
define({
     library: 'dojo' ,
     version: 1.9
});
Getting a little more interesting - when this module is loaded, we get an object with 2 properties.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
define( function (){
     var privateValue = 0;
     return {
         increment: function (){
             privateValue++;
         },
 
         decrement: function (){
             privateValue--;
         },
 
         getValue: function (){
             return 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加载完毕之前,它不会被解析。

1
2
3
4
5
// in "my/app.js"
define([ "dojo/dom" , "dojo/domReady!" ], function (dom){
     // This function does not execute until the DOM is ready
     dom.byId( "someElement" );
});

Note 上面的例子中,我们没有定义参数来接受dom/domReady的返回值。这是因为它的返回值没有任何意义--我们只是使用dom/domReady来延迟回调。请求不需要返回值的模块或者plugins,应该把他们放在请求列表的最后,因为模块的顺序和回调函数里面参数顺序是相关的。

Note 即使没有向plugin传递任何数据,感叹号!也是必须的。没有它,只是会简单的加载dom/domReady模板,而不会激活它的特殊的插件特性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值