JavaScript - ECMAScript 5 - Properties
http://ejohn.org/blog/ecmascript-5-objects-and-properties/
by secretgspot
JavaScript
// Object.getOwnPropertyDescriptor
var obj = { foo: "test" };
console.log(JSON.stringify(
Object.getOwnPropertyDescriptor( obj, "foo" )
))
// Object.defineProperty
var obj = {};
Object.defineProperty( obj, "value", {
value: true,
writable: false,
enumerable: true,
configurable: true
});
(function(){
var name = "John";
Object.defineProperty( obj, "name", {
get: function(){ return name; },
set: function(value){ name = value; }
});
})();
console.log( obj.value )
// true
console.log( obj.name );
// John
obj.name = "Ted";
console.log( obj.name );
// Ted
for ( var prop in obj ) {
console.log( prop );
}
// value
// name
obj.value = false; // Exception if in strict mode
Object.defineProperty( obj, "value", {
writable: true,
configurable: false
});
obj.value = false;
console.log( obj.value );
// false
delete obj.value; // Exception