Reactive JavaScript object properties