Was man in Java teilweise mit Javassist gemacht hat und man für die Erkennung von Änderungen an Object-Values in JavaScript dringend braucht sind Proxy-Objekte.
Das geht zum Glück an sich ganz einfach.
<html>
<head>
<script type="text/javascript">
var x = {value: ""};
var xHandler = {
set: function(target, property, value, receiver) {
target[property] = value;
console.log(target);
}
};
var xProxy = new Proxy( x, xHandler );
</script>
</head>
<body>
<input type="text" onkeyup="xProxy.value=this.value;">
</body>
</html>
Damit kann auch bidirektionales Binding zwischen Model und HTML-Element implementieren.