这个 JavaScript 对象有什么问题?

3
我想这里的意图已经很明显了:
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_name作为region-a进行调用,则警告显示viewnames.view_name未定义。问题出在哪里?
3个回答

8

您必须在函数 loadView 中使用 viewnames[view_name]


澄清一下:您不能使用变量来进行点访问符号语法;您必须使用大括号。因此,应该使用viewnames[view_name]而不是viewnames.view_name - mway

1
你需要按名称进行索引,例如:viewnames[view_name]

0

通过关联数组索引进行访问(viewnames[view_name])。请不要使用eval结构(eval("var tmp = viewnames." + view_name + ";"))。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接