我对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;
最佳答案
您所缺少的所有引号:
displayinfo("playerlvl");
在JavaScript中,您可以使用点表示法和文字属性名称(
game.playerlvl
)或使用括号表示法和字符串属性名称(game["playerlvl"]
)访问属性。 (在ES6中,括号表示法也支持Symbol
。)括号中的字符串(或Symbol
)可以是任何表达式的结果,包括变量/参数查找。因此,如果game[name]
的值是字符串或可以合理地转换为一个,则name
起作用。您已经正确使用了
displayinfo
中的括号表示法,只需要向其传递一个字符串,而不是使用文字即可。您使用文字的代码尝试在playerlvl
行上使用一个名为displayinfo(playerlvl)
的变量,该变量不存在,因此得到一个ReferenceError
。