Grundsätzlich haben Sie zwei Möglichkeiten
- Nicht-Standard verwenden
watch
Methode, die nur in Firefox verfügbar ist
- Getter und Setter verwenden, die in älteren IE-Versionen nicht unterstützt werden
Die dritte und plattformübergreifende Option ist die Verwendung von Polling, was nicht so toll ist
Beispiel für watch
var myObject = new MyObject();
// Works only in Firefox
// Define *watch* for the property
myObject.watch("myVar", function(id, oldval, newval){
alert("New value: "+newval);
});
myObject.myVar = 100; // should call the alert from *watch*
Beispiel für getters
y setters
function MyObject(){
// use cache variable for the actual value
this._myVar = undefined;
}
// define setter and getter methods for the property name
Object.defineProperty(MyObject.prototype, "myVar",{
set: function(val){
// save the value to the cache variable
this._myVar = val;
// run_listener_function_here()
alert("New value: " + val);
},
get: function(){
// return value from the cache variable
return this._myVar;
}
});
var m = new MyObject();
m.myVar = 123; // should call the alert from *setter*