Атрибутenumerable

Атрибут enumerableсвойства определяет, просматривается ли свойство в цикле for...inи методом Object.keys()или нет.

var o = {};

Object.defineProperty(o, 'a', { value: 1, enumerable: true });
Object.defineProperty(o, 'b', { value: 2, enumerable: false });

// Атрибут enumerable по умолчанию установлен в false
Object.defineProperty(o, 'c', { value: 3 }); 

o.d = 4; // При создании свойства путём присваивания, атрибут enumerable 
         // по умолчанию установливается в true

for (var i in o) {
  console.log(i);
}
// Выведет 'a' и 'd' (порядок вывода не определён)

Object.keys(o); // ['a', 'd']

o.propertyIsEnumerable('a'); // true
o.propertyIsEnumerable('b'); // false
o.propertyIsEnumerable('c'); // false

results matching ""

    No results matching ""