Не выводит свойства объекта в цикле
Есть пустой объект в который я записал два новых свойства firstAdd и secondAdd по идее цикл должен выводить пару ключ:значение через alert, но этого почему-то не происходит. В чем проблема?
let obj = {
}
Object.defineProperties(obj,{
firstAdd: {value: 'Первый', writable: true},
secondAdd: {value:'Второй', writable: true},
});
for (let values of Object.entries(obj)) {
alert(values);
}
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
По-умолчанию, значение свойства enumerable установлено как false.
Object.entries возвращает, только перечислимые свойства.
Так как в примере нет перечислимых свойств (таких, у которых enumerable===true) то ничего и не выводится.
Для исправления достаточно явно указать, что свойство является перечислимым.
let obj = {
}
Object.defineProperties(obj,{
firstAdd: {value: 'Первый', writable: true, enumerable: true},
secondAdd: {value:'Второй', writable: true, enumerable: true},
});
for (let values of Object.entries(obj)) {
console.log(values);
}