Строка 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.
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
Bumblebee
Есть неясность, прошу помощи.
Вот код:
var o = {x:1, y:2, z:3};
for (var i in o) console.log(i);
На выходе:
Как работает? (Как я понял)
Строка 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);
, то получается такой результат:
Но если вместо console.log(o) написать console.log(o.i), то отладчик выдает ошибку undefined трижды.
Вопрос
В чем косяк? Ведь я прошу его вывести в консоль значения трех свойств объекта "o"
Если просто объявить объект, а потом написать в консоли o.x например, то она выведет 1.
Edited by BumblebeeLink to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.