我使用什么来重载=JS 对象的运算符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; }
});
这是定义简单属性的标准 es5 语法。
Nowobj.var是具有重载=运算符的属性。
但我实际上要做的是=为自身重载运算符obj。
obj.var = 'a'; // prints: get
var v = obj.var;
v = 'b'; // prints: nothing!
// of course that's right, because v is an string now.
如何=为对象本身重载运算符?
//i what something like this
v = 'b'; // should print: set
有可能(在 es5 中)吗?