Я пытаюсь выяснить, как можно получить доступ к объекту через строку, имя которой совпадает с именем объекта. Существуют ли какие-либо конкретные обозначения для строки, которая будет интерпретироваться как имя объекта?
Как в моем примере скрипта:
<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
Цель моего сценария - использовать идентификатор "двери" нажатой кнопки для доступа к объекту "дверь".
Но сейчас это не работает, потому что идентификатор кнопки «дверь» - это просто строковое имя, которое не имеет ничего общего с объектом с таким же именем.
Как можно установить соединение, не создавая объект, который интегрировал бы объект "дверь" (чтобы сделать его доступным через обозначения в скобках)?
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);