Я пытаюсь создать объект, используя мой конструктор Person, но он не работает, когда я инициализирую объект непосредственно в массиве, который использует литерал.Создание объектов с конструктором внутри массива literal
function Person (name, age) {
this.name = name;
this.age = age;
}
var family = [
[ new Person("alice", 40) ],
[ new Person("bob", 42) ],
[ new Person("michelle", 8) ],
[ new Person("timmy", 6) ]
];
for (var person in family) {
console.log(family[person].name);
}
Но это просто печатает undefined
четыре раза.
Я должен использовать это обозначение:
var family = new Array();
family[0] = new Person("alice", 40);
family[1] = new Person("bob", 42);
family[2] = new Person("michelle", 8);
family[3] = new Person("timmy", 6);
Так печатает alice
, bob
, michelle
, timmy
.
Что я делаю неправильно?
Если вы не» t хотите использовать простой цикл 'for', вы можете так же легко выбросить его в' forEach' – Deryck