JavaScript Object.defineProperty

by vijayram_a

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();