我对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

09-04 20:52