Есть неясность, прошу помощи. Вот код: var o = {x:1, y:2, z:3}; for (var i in o) console.log(i); На выходе: x y zКак работает? (Как я понял) Строка 1. Объявление объекта "o". Строка 2. Сначала идет проверка, является ли "o" объектом. В моем случае да, является. И имеет три свойства: x, y, z. Потом идет инициализация переменной i. Успешно. После этого начинается цикл for/in. Каждый раз переменной "i" присваивается очередное свойство объекта "o". Причем, как я понял, не его значение, а его имя, в противном случае консоль выдала бы это: 1 2 3 Теперь, если немного изменить код: var o = {x:1, y:2, z:3}; for (var i in o) console.log(o); , то получается такой результат: 1 2 3 Но если вместо console.log(o) написать console.log(o.i), то отладчик выдает ошибку undefined трижды. Вопрос В чем косяк? Ведь я прошу его вывести в консоль значения трех свойств объекта "o" Если просто объявить объект, а потом написать в консоли o.x например, то она выведет 1.