如何在Javascript中按名称引用对象

时间:2015-07-04 16:10:38

标签: javascript object

$.getScript(app.modulePath+'/'+ moduleName+'.js')   //include file
    .done(function()
{
    app.loadedModules.push(moduleName);             //track loaded modules
    app.currentModule = moduleName;                 //assign module name to object property
});

我正在加载javascript模块,因为我需要它们,但是在引用它们时遇到了问题。 要按名称加载模块,我使用字符串并将字符串指定为currentModule。但它是一个字符串。如何分配与字符串同名的加载对象。

示例:

Images.js

var Images = (function()
{

 return {
    allImages: function(){},
    oneImage: function(){}
 };

});

app.js

var moduleName = 'Images';
$.getScript(moduleName).done(function()
{
   myApp.currentModule = moduleName;
   //how to reference currentModule as object
});

2 个答案:

答案 0 :(得分:2)

您可以使用全局对象:

window[moduleName].allImages();

答案 1 :(得分:1)

根据我的理解你的问题是创建模块对象并确定它是对的吗?如果我错了,请在评论中告诉我

所以这是解决问题的方法

app.js

var moduleName = 'Images';
$.getScript(moduleName+'.js').done(function()
{
   myApp.currentModule = new window[moduleName]();
   console.log(myApp.currentModule)
});