dojo.provide:你到底“提供”了些什么?

前端之家收集整理的这篇文章主要介绍了dojo.provide:你到底“提供”了些什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

dojo.provide/require机制作为JavaScript模块化管理工具,在用Dojo进行富客户端开发中确实起到了关键性的作用。具体可参考"Understanding dojo.require "和"Understanding dojo.declare,dojo.require,and dojo.provide "两文。

当在一个JavaScript文件的最开始声明

后,相当于通知了dojo两件事情:

1. 这儿有一个JS模块"my.c",文件名叫做c.js,处在路径my下(关于路径的设置,见"Understanding dojo.require ");

2. 这儿创建了一个叫my.c的JavaScript object。

那么接下来就可以在c.js中名正言顺地干点事情了。既然my.c是一个object,那就可以包含自己的变量及函数

非常自然地,我们会直接在c.js中定义如下变量:

在前一篇"Dojo对不同浏览器(IE,Firefox)下JavaScript变量作用范围的影响 "中,我们可以看到虽然在c.js中定义了变量c1,但在IE中c1既不能作为全局变量被访问,也和object my.c没有什么关系(也就是不能通过my.c.c1访问)。和我们设想的用dojo.provide进行模块化编程不一致。

由此可见,dojo.provide("my.c")有点像my.c = {}。虽然为我们生成了object my.c,但实际上并没有将所在的JS文件变成可直接定义变量的object内部环境(就如{}内部)。因此要在该JS文件中定义my.c的变量或函数,还得每次引用它。

下面提供几种定义变量的方法供参考。

1.

2.

3.

4.

猜你在找的Dojo相关文章