1

太晚了,我现在脑子一片空白,但是假设我有变量filename,它正在存储另一个变量的名称marker。变量marker是一个数组,包含对象 & 属性position: new google.maps.LatLng(42.2550,-114.3221)

我一直愚蠢地试图通过filename.position它当然返回未定义来访问它,因为它正在搜索文字filename以查找不存在的“位置”属性。

但是我怎么marker.position能通过使用来拉filename呢?是否有一些漂亮的 jQuery 技巧用于,呃,将变量“解析”到其内容?我脑筋急转弯。我知道我以前做过。

4

2 回答 2

2

如果可以在您的脚本中,您不仅可以将数据存储在变量中,还可以存储在某个对象的属性中(通常使用全局属性更方便)。例如

var myObj = {};
myObj.marker = new google.maps.LatLng(42.2550,-114.3221); // or anything else

然后,您将能够使用如下变量获取此属性:

myObj[filename].position

在这种情况下,我还建议myObj[filename]使用typeof结构检查是否存在,以确保此类属性存在于myObj.

if (typeof myObj[filename] !== "undefined") {
  // do something
}

正如 apsillers 所指出的,您也可以window为此使用全局对象。但是,如果您的marker变量是在其他函数中定义的(即不是 global),您将无法使用它访问它,window.marker或者window[filename]因为它超出了范围。

第二种方法是使用我强烈建议避免使用的 eval() 函数。

于 2013-05-14T13:02:57.243 回答
0

尝试这个 :

window[filename].position;
于 2013-05-14T13:07:44.353 回答