所以问题是,我有使用window.blah.blah调用的数据,它会根据用户或数据库中的项目吐出信息。
现在我的问题是我想使用带有动态附属物的window.blah.blah,如window.blah.blah.VARIABLE1
我试过window.blah.blah.instances [变量]但是我得到一个类型错误,说明变量的值没有定义(所以如果变量= test1,则错误将是TypeError:无法读取未定义的属性'test1'。生成变量,因此它可以是test1 test2,它对应于存储的对象。
如果它有助于我在一个循环中使用它来使用它来访问具有不同对象名称的存储的json obj。
如果我将其中一个对象称为test1并且我执行window.blah.blah.test1它会访问该对象,但window.blah.blah.instances [test1]会出现上述错误。
我做错了什么?
答案 0 :(得分:0)
您正在寻找的语法可能是window.blah.blah[VARIABLE1]
(假设blahs是对象。)
请注意,在窗口上存储数据通常是一个坏主意,因此对于以下示例,我将顶级对象从全局空间(通过window
访问)移动到局部变量中:
var myObj = {
blah: {
blah: {}
}
};
var fooVar == 'foo';
function getMyDynamicVariable() {
return "foo"; //really this would by some dynamically generated string
}
//example usage:
myObj.blah.blah[getMyDynamicVariable()];
// OR
myObj.blah.blah[fooVar];
// would be the same as
myObj.blah.blah.foo //(in this exact example, where all functions and variables contain the string 'foo'.)