0

我正在使用 jquery getScript 动态加载一些 javascript 模块。我希望能够调用所有模块都具有的 init 方法。模块是动态加载的,所以我不想对名称进行硬编码。是否可以在不使用构造函数的情况下以某种方式调用 init?

 $.getScript("/mydynamicmodule.js", function (data, textStatus, jqxhr) {

              myModuleName.init()         

            });
4

2 回答 2

1

根据 Samer 的建议,您已经有了一个用于模块位置的字符串,例如“/mydynamicmoudle.js”。我不知道您是如何获取此字符串的(即,您是否从某个地方加载它等),但您可以尝试以下方式:

function openModule(name) {
    $.getScript("/"+name+".js", function (data, textStatus, jqxhr) {
        window[name].init();
    }
}

这假设您的模块具有可以从您的文件名派生的别名。

于 2013-08-06T23:47:39.843 回答
0

如果您的模块名称在全局命名空间 ( window) 中,那么您可以试试这个:

window['myModule'].init();
于 2013-08-06T22:47:40.783 回答