I am looking at adding the ability to watch a variable to my code base, and I found this answer which does almost everything I need. The code that the answer provided is the following:
console = console || {}; // just in case
console.watch = function(oObj, sProp) {
    sPrivateProp = "$_"+sProp+"_$"; // to minimize the name clash risk
    oObj[sPrivateProp] = oObj[sProp];
    // overwrite with accessor
    Object.defineProperty(oObj, sProp, {
        get: function () {
            return oObj[sPrivateProp];
        },
        set: function (value) {
            //console.log("setting " + sProp + " to " + value); 
            debugger; // sets breakpoint
            oObj[sPrivateProp] = value;
        }
    });
}
To 'watch' a variable, you would use: console.watch(obj, "someProp");
However, I would like to know if it possible to add a 'unwatch' method that would undo the above? If so, how can that be done?
 
     
     
    