Javascript 尝试对动态生成的对象名调用函数

Javascript 尝试对动态生成的对象名调用函数,javascript,Javascript,我在调用名称是动态确定的对象上的函数时遇到一些问题。下面的代码说明了我的代码当前是如何设置的,我遇到的问题发生在名为doSomethingElse()的函数中 subObj从未分配给您可以简单引用的范围。这就是为什么eval()是最好的解决方案。说到这里,我正在看一段奇怪的代码。你能详细说明一下吗?我觉得有一个架构问题 另外,既然返回的对象包含subObj和subObj2,为什么不将其用作作用域呢 function doSomethingElse(){ // ... retObj

我在调用名称是动态确定的对象上的函数时遇到一些问题。下面的代码说明了我的代码当前是如何设置的,我遇到的问题发生在名为doSomethingElse()的函数中


subObj从未分配给您可以简单引用的范围。这就是为什么eval()是最好的解决方案。说到这里,我正在看一段奇怪的代码。你能详细说明一下吗?我觉得有一个架构问题

另外,既然返回的对象包含subObj和subObj2,为什么不将其用作作用域呢

function doSomethingElse(){
    // ...
    retObj[callFuncOnThis].a()
}

var retObj = {'subObj': subObj, 'subObj2': subObj2};

doSomething();

return retObj;

请在标题中简要描述您的问题。另一个Javascript OO问题并不能真正做到这一点。我不知道从哪里开始。我认为可能也存在架构问题。我对js还比较陌生。无论如何,问题中的代码只是我正在构建的jquery插件的一小部分。这个插件有几个不同的“组件”,你可以同时使用。这些是上面代码中的子对象。插件执行一组基本的初始化,然后通过用户选择的组件进行循环,并在每个组件上调用init函数…因此doSomethingElse中的代码实际上有一个循环。你把我弄丢了。但关键是,您要返回的对象应该被显式定义(如在我的代码中),并且您可以将其用作“subObj2”的作用域。它可以完美地工作并有意义。谢谢代码有什么特别奇怪的地方吗?这让我觉得很奇怪,但我一直无法找出原因……如果没有看到您的其余代码,很难说。我觉得有很多事情你没有表现出来。
function doSomethingElse(){
    // ...
    retObj[callFuncOnThis].a()
}

var retObj = {'subObj': subObj, 'subObj2': subObj2};

doSomething();

return retObj;