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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |