I what to overload the =
operator for JS objects using Object.defineProperty
.
var log = console.log.bind(console);
var obj = { };
Object.defineProperty(obj,'var', {
get: function() { log('get'); return obj._var; },
set: function(v) { log('set'); obj._var = v; }
});
That's the standard es5 syntax for defining a simple property.
Now obj.var
is a property with overloaded =
operator.
But what i actually what to do is to overload =
operator for the obj
itself.
obj.var = 'a'; // prints: get
var v = obj.var;
v = 'b'; // prints: nothing!
// of course that's right, because v is an string now.
How to overload the =
operator for the object itself ?
//i what something like this
v = 'b'; // should print: set
Is it possible (in es5) ?