В каких условиях Object.create вы хотите установить enumerable
в true
?Что такое перечислимый аргумент в Object.create?
6
A
ответ
10
Свойство объекта должно быть перечислимым, если вы хотите иметь доступ к нему при повторном выполнении всех свойств объектов. Пример:
var obj = {prop1: 'val1', prop2:'val2'};
for (var prop in obj){
console.log(prop, obj[prop]);
}
В этом типе конкретизации, перечислимы всегда верно, это даст вам выход:
prop1 val1
prop2 val2
Если бы вы использовали Object.create() следующим образом:
obj = Object.create({}, { prop1: { value: 'val1', enumerable: true}, prop2: { value: 'val2', enumerable: false} });
Ваш цикл for будет иметь доступ только к prop1, а не к prop2. Используя Object.create(), свойства устанавливаются с enumerable = false по умолчанию.
[Эмулировать неперечислимые свойства] (http://stackoverflow.com/questions/8918030/is-it-possible-to-emulate-non-enumerable-properties) – Raynos