无法通过函数参数传递对象属性名称

时间:2018-02-21 11:09:40

标签: javascript arrays json properties parameter-passing

我试图通过函数参数传递对象属性名称,但它不起作用。这是我的脚本(详情如下,之后):

<!DOCTYPE html>
<html>
<body>
<button onclick="myButton()">Try it</button>

<p id="display"></p>
<p id="display2"></p>

<script>

var person = {"name":"dupont","surname":"bob"};

function myButton() {    
    document.getElementById("display").innerHTML = person.name;    
    function personInfoDetails(x) {
    document.getElementById("display2").innerHTML = person[x];
    }
    personInfoDetails(name);
}

</script>

</body>
</html>

我想通过函数“personInfoDetails(x)”显示“dupont”,即我的对象“person”的属性“name”下的存储值。为此,我执行此函数,通过我的对象“person”的属性“name”替换其参数“x”。但它显示“未定义”。

这是live preview of this script

我已经准备好阅读this post并尝试将其解决方案应用于我的问题,但它仍无效。

非常感谢您的解决方案!

1 个答案:

答案 0 :(得分:2)

您需要使用引号name

包裹""

&#13;
&#13;
var person = {
  "name": "dupont",
  "surname": "bob"
};

function myButton() {
  document.getElementById("display").innerHTML = person.name;

  function personInfoDetails(x) {
    document.getElementById("display2").innerHTML = person[x];
  }
  personInfoDetails("name");
}
&#13;
<!DOCTYPE html>
<button onclick="myButton()">Try it</button>
<p id="display"></p>
<p id="display2"></p>
&#13;
&#13;
&#13;