我尝试找出如何通过与对象名称相同的字符串访问对象。将该字符串解释为对象名称是否有任何特定的符号?
就像我的示例脚本中一样:
<html>
<body>
<script>
var door = {"opened":false, "window":{"opened":false} };
function knocking(event){
var knockedThing = event.target.id;
alert(knockedThing);
alert("door is opened : " + knockedThing.opened);
alert("door window is opened : " + knockedThing.window.opened);
}
</script>
<button id="door" onclick="knocking(event)">A door</button>
</body>
</html>
脚本可以在这里运行: ---> https://www.w3schools.com/code/tryit.asp?filename=FX3JE6FP2UFQ
我的脚本的目标是使用单击的按钮的ID“门”来访问对象“门”。 但是现在不起作用,因为按钮ID“门”只是一个字符串名称,与具有相同名称的对象无关。
如何在不创建集成对象“门”的对象的情况下进行连接(通过括号表示法可访问该对象)?
var house = {"door":{"opened":false, "window":{"opened":false} } };
通过括号表示法可以访问哪些内容,如下所示:
alert(house[something]);
alert("door is opened : " + house[something].opened);
alert("door window is opened : " + house[something].window.opened);
答案 0 :(得分:1)
<html>
<body>
<script>
var door = {"opened":false, "window":{"opened":false} };
function knocking(event){
var knockedThing = event.target.id;
alert(knockedThing);
alert("door is opened : " + window[knockedThing].opened);
alert("door window is opened : " + window[knockedThing].window.opened);
}
</script>
<button id="door" onclick="knocking(event)">A door</button>
</body>
</html>
全局变量是window
对象的属性,因此您可以通过door
访问window['door']
。