JavaScript Object.defineProperty
by Joshua McNeese
JavaScript
var obj = {};
Object.defineProperty(obj, "value", {
value: true,
writable: false,
enumerable: true,
configurable: true
});
function fn1() {
var name = "John";
Object.defineProperty(obj, "name", {
get: function () {
return name;
},
set: function (value) {
name = value;
}
});
}
fn1();
console.log(obj.value); // true
console.log(obj.name); // John
obj.name = "Ted";
console.log(obj.name); // Ted
obj.value = false; // Exception if in strict mode
Object.defineProperty(obj, "value", {
writable: true,
configurable: false
});
obj.value = false;
console.log(obj.value); // false
function fn2() {
"use strict";
try {
delete obj.value; // Exception if in strict mode
} catch (e) {
console.log(e);
}
}
fn2();