Что такое перечисляемый аргумент для In Object.создать?

в каких обычаях "объект".create вы хотите установить enumerable до true?

1 ответов


свойство объекта должно быть перечисляемым, если вы хотите иметь доступ к нему при итерации по всем свойствам объектов. Пример:

var obj = {prop1: 'val1', prop2:'val2'};
for (var prop in obj){
  console.log(prop, obj[prop]);
}

в этом типе экземпляра enumerable всегда истинно, это даст вам результат:

prop1 val1
prop2 val2

Если бы вы использовали Object.create() так:

obj = Object.create({}, { prop1: { value: 'val1', enumerable: true}, prop2: { value: 'val2', enumerable: false} });

ваш цикл for будет иметь доступ только к prop1, а не prop2. Используя Объект.create () свойства задаются с помощью enumerable = false по умолчанию.