浏览器中不同脚本标记之间的Javascript环境共享 我对JavaScript非常陌生,而且来自C++背景,我发现自己有点困惑。我有一个javascript文件,为另一个javascript文件设置了一个工作环境工厂类,如下所示: <body> <script src = "environment.js" ></script> <script src = "main.js" ></script> </body>

浏览器中不同脚本标记之间的Javascript环境共享 我对JavaScript非常陌生,而且来自C++背景,我发现自己有点困惑。我有一个javascript文件,为另一个javascript文件设置了一个工作环境工厂类,如下所示: <body> <script src = "environment.js" ></script> <script src = "main.js" ></script> </body>,javascript,browserify,Javascript,Browserify,Environment.js (function () { var mod_platform_factory = require("../../../platform/factory.js"); mod_platform_factory.registerService("connection", require("./connection.js")); })(); 为了便于阅读,我已经删除了这两个文件,并添加了connection.js代码,因为我认为这是不必要的。一切都按预期工作,连

Environment.js

(function () {
    var mod_platform_factory = require("../../../platform/factory.js");
mod_platform_factory.registerService("connection", require("./connection.js"));
})();
为了便于阅读,我已经删除了这两个文件,并添加了connection.js代码,因为我认为这是不必要的。一切都按预期工作,连接对象愉快地位于单一平台工厂对象的_工厂中

然后它开始执行main.js

var mod_platform_factory = require("../../libs/platform/factory.js");

$(document).ready(function () {
    var connection = mod_platform_factory.requestService("connection");
    connection.connect();       
}
)
现在,我再也无法访问line connection.connect(),因为requestService函数抛出了我在PlatformFactory.requestService中放置的错误。查看PlatformFactory.\u factories对象没有名为connection的服务

有人能解释一下我做错了什么吗


谢谢

在您的environment.js中创建的mod_platform_工厂将被您在main.js中创建的mod_platform_工厂覆盖


后者没有连接。

谢谢您的回复。我将main.js中的第二个重命名为mod_platform_factory_test,这没有什么区别。mod_platform_factory_test也不会有连接,在main.js中,您可以引用先前创建的mod_platform_工厂(在environment.js中创建的工厂)。那个mod_平台工厂确实有一个连接。
var mod_platform_factory = require("../../libs/platform/factory.js");

$(document).ready(function () {
    var connection = mod_platform_factory.requestService("connection");
    connection.connect();       
}
)