太晚了,我现在脑子一片空白,但假设我有变量 filename
,它正在存储另一个变量 marker
的名称。变量 marker
是一个数组,包含对象和属性 position: new google.maps.LatLng(42.2550,-114.3221)
。
我一直在愚蠢地尝试通过 filename.position
访问它,这当然会返回 undefined,因为它正在搜索文字 filename
来寻找一个“position”属性不存在。
但是我怎样才能使用 filename
拉取 marker.position
呢?是否有一些漂亮的 jQuery 技巧,呃,将变量“解析”为其内容?我脑残了我知道我以前做过。
最佳答案
如果在您的脚本中可行,您不仅可以将数据存储在变量中,还可以存储在某些对象的属性中(通常使用全局属性更方便)。 例如
var myObj = {};
myObj.marker = new google.maps.LatLng(42.2550,-114.3221); // or anything else
然后您将能够使用这样的变量来获取此属性:
myObj[filename].position
在这种情况下,我还建议使用 typeof
结构检查 myObj[filename]
是否存在,只是为了确保这样的属性存在于 myObj
.
if (typeof myObj[filename] !== "undefined") {
// do something
}
正如 apsillers 所指出的,您也可以为此使用全局 window
对象。但是,如果您的 marker
变量是在其他函数中定义的(即不是全局的),您将无法使用 window.marker
或 window[filename]
因为它将超出范围。
第二种方法是使用 eval() 函数,我强烈建议避免。
关于javascript - 通过另一个变量名访问对象的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16543266/