将对象键传递给函数

时间:2015-06-11 09:30:03

标签: javascript function object parameters

我不太了解javascript,所以我可能会误解对象的基本内容。我明白两者之间有区别。和[],这可能是问题的一部分,但我不知道如何解决这个问题。

var game = {
    playerlvl:1
}

function displayinfo(name){
    var info = document.getElementById( name );
    info.innerHTML = game[name];
}

displayinfo(playerlvl);

我希望函数的结果与:

相同
document.getElementById("playerlvl").innerHTML = game.playerlvl;

2 个答案:

答案 0 :(得分:2)

引号中缺少所有内容:

displayinfo("playerlvl");

在JavaScript中,您可以使用点表示法和文字属性名称(game.playerlvl)或使用括号表示法和字符串属性名称来访问属性( game["playerlvl"])。 (在ES6中,括号表示法也支持Symbol s。)括号中的字符串(或Symbol)可以是任何表达式的结果,包括变量/参数查找。如果game[name]的值是一个字符串,或者可以合理地转换成一个字符串,那么name就有效。

您已经在displayinfo中正确使用括号表示法,您只需要传递一个字符串而不是使用文字。您使用文字的代码尝试在playerlvl行上使用名为displayinfo(playerlvl)的变量,该变量不存在,因此获得ReferenceError

答案 1 :(得分:1)

我在这里为您解决http://jsfiddle.net/xt7utnhz/

您刚刚失踪displayinfo("playerlvl");