我有一个像谷歌地图api这样的映射应用程序。在此应用程序中,我正在创建不同的模块。我的大多数模块都在使用应用程序中的底图地图对象。
例如:
模块1
define(["dojo/_base/declare"], function(declare){
return declare(null, {
constructor: function(){
//..... use map .....
}
});
});
模块2
模块3
.....
和主应用程序启动
require(["dojo/ready", "my/module1"], function(ready, fx){
ready(function(){
var map = new MyMap(); // this will use in other modules
});
});
我可以在模块 3 中调用模块 2 或在模块 4 中调用模块 3,但其中大多数都在主模块中创建中使用 map 对象。
我正在将映射对象传递给构造函数级别的模块。在道场或javascript中,有没有一种实用的方法来解决这些研究?
这是实用的方法。我的意思是,这就是你在任何语言中的做法,而不仅仅是在 Dojo 中。如果一个对象需要另一个对象,您可以将其添加为属性/字段并设置它。
您唯一能做的就是将new MyMap()
代码移动到单独的模块中,并将该模块加载到模块 1、模块 2、模块 3 中。这样,主应用程序就不需要提供依赖项。