Object Create Enumerability
by andypotanin
JavaScript
var obj = Object.defineProperties( {}, {
non_enum: { value: true, enumerable: false },
enum: { value: true, enumerable: true }
});
var obj2 = { stuff: true, __proto__: obj };
// Own properties are as set
console.log( !obj.propertyIsEnumerable( 'non_enum' ) && obj.propertyIsEnumerable( 'enum' ) );
// Inhertied are non-enum automatically
console.log( !obj2.propertyIsEnumerable( 'non_enum' ) && !obj2.propertyIsEnumerable( 'enum' ) );
// Check Proto
console.log( !obj2.__proto__.propertyIsEnumerable( 'non_enum' ) && obj2.__proto__.propertyIsEnumerable( 'enum' ) );