Я изучаю ООП, и мне любопытно узнать, почему мой код не просматривает все экземпляры объекта и не выходит из свойства firstName - посмотрите мою демонстрацию ниже:
var people = {
"person1" : {
"firstName": "John"
, "lastName": "Smith"
, "age" : 25
, "checkedin" : true
},
"person2" : {
"firstName": "Nick"
, "lastName": "Debruyne"
, "age" : 24
, "checkedin" : false
}
}
// console.log(people); // works correctly
for (let person in people) {
// console.log(person); // works correctly
console.log(person.firstName); // returns undefined
}
Codepen: https://codepen.io/ns91/pen/VwZoegw?editors=1111
Этот код должен просто проходить через каждый экземпляр объекта и регистрировать значения firstName каждого объекта (будучи 'John' и 'Ник'). Есть ли какая-то ошибка новичка, которую я здесь делаю?
Кроме того, почему в консоли отображается «undefined»? Я заметил, что это происходит для других вещей, которые я регистрирую в консоли, и даже в случае успеха, это все еще иногда происходит. Может ли кто-нибудь объяснить процесс того, что происходит в браузере, или почему он показывает undefined?
И это JSON или JS? Интересно, нужно ли преобразовывать его в JS, чтобы его можно было читать в JS для циклов?
Спасибо за любой совет.