Skip to content

Instantly share code, notes, and snippets.

@phillipalexander
Created July 22, 2013 01:19
Show Gist options
  • Save phillipalexander/6050715 to your computer and use it in GitHub Desktop.
Save phillipalexander/6050715 to your computer and use it in GitHub Desktop.
Javascript Object.definePropery() method
var o = {}; // Creates a new object
// Example of an object property added with defineProperty with a data property descriptor
Object.defineProperty(o, "a", {value : 37,
writable : true,
enumerable : true,
configurable : true});
// 'a' property exists in the o object and its value is 37
// Example of an object property added with defineProperty with an accessor property descriptor
var bValue;
Object.defineProperty(o, "b", {get : function(){ return bValue; },
set : function(newValue){ bValue = newValue; },
enumerable : true,
configurable : true});
o.b = 38;
// 'b' property exists in the o object and its value is 38
// The value of o.b is now always identical to bValue, unless o.b is redefined
// You cannot try to mix both :
Object.defineProperty(o, "conflict", { value: 0x9f91102,
get: function() { return 0xdeadbeef; } });
// throws a TypeError: value appears only in data descriptors, get appears only in accessor descriptors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment