JavaScript Dojo 工具包在应用程序中使用全局对象



我有一个像谷歌地图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 中。这样,主应用程序就不需要提供依赖项。

最新更新