2010-10-06 95 views
3

我认为这是相当清楚我想要在这里做:这个JavaScript对象有什么问题?

var viewnames = {}; 
viewnames['region-a'] = "Region A"; 
viewnames['region-b'] = "Region B, partial"; 
viewnames['region-c'] = "Region C"; 

function loadView(view_name) { 
    alert('view_name: ' + view_name); 
    alert('viewname: ' + viewnames.view_name); 
    document.getElementById("viewtitle").innerText = view_name; 
} 

但是,如果我把这个与view_nameregion-a警告说viewnames.view_name是不确定的。问题是什么?

回答

8

您必须使用viewnames[view_name]自己的函数中loadView

+0

谢谢!我将在10分钟后启动时接受此答案:) – AP257 2010-10-06 18:31:54

+0

澄清:对于点存取器语法,不能使用变量;你必须使用大括号。因此,'viewnames [view_name]'而不是'viewnames.view_name'。 – mway 2010-10-06 18:32:42

1

你的名字,例如需要建立索引呢viewnames[view_name]

0

通过关联数组索引(viewnames[view_name])访问它。请请勿使用eval构造(eval("var tmp = viewnames." + view_name + ";"))。