2012-01-27 9 views

Respuesta

10

Una propiedad de un objeto debe ser enumerable si desea poder tener acceso a ella cuando itere a través de todas las propiedades de los objetos. Ejemplo:

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

En este tipo de instancias, enumerable es siempre cierto, esto le dará una producción de:

prop1 val1 
prop2 val2 

Si hubiera utilizado Object.create(), así:

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

su bucle for solo accederá al prop1, no al prop2. Usando Object.create() las propiedades se establecen con enumerable = false de forma predeterminada.

+0

Tenga en cuenta que 'enumerable' está predeterminado como falso en' Object.create' – Raynos

+0

gracias, me refería a la otra instanciación. Me olvidé de mencionar eso. Voy a editar mi respuesta –

+0

Gracias, eso lo aclaró para mí =] – ryanve

Cuestiones relacionadas