My JS knowledge isn't great. In python, I can do operator overloading such that `obj[item] = value` does something completely different than assignment. Is that possible with JavaScript?
So...
> var x = {}
> Object.defineProperty(x, 'value', { get: function() { return 1 }, set: function() { console.log('set') } })
> x.value
1
> x.value = 2
set
> x.value
1