2012-01-27 2 views

ответ

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 по умолчанию.

+0

Обратите внимание, что 'enumerable' по умолчанию false в' Object.create' – Raynos

+0

спасибо, я имел в виду другой экземпляр. я забыл упомянуть об этом. Я отредактирую свой ответ –

+0

Спасибо, что прояснил это для меня =] – ryanve