Non ho ben capito la domanda, ma in generale per osservare i cambiamenti di una variabile puoi provare così:
codice:
function creaOsservaVariabile (nome, callback, valoreIniziale) {
var valore = valoreIniziale;
Object.defineProperty(window, nome, {
get: function () {return valore;},
set: function (nuovo) {
callback(nuovo, valore);
valore = nuovo;
}
});
}
codice:
creaOsservaVariabile("animale", function (nuovo, vecchio) {
alert("Il " + vecchio + " è diventato un " + nuovo);
}, "cane");
setTimeout(function () {
animale = "canarino";
}, 3000); // Dopo 3 secondi apparirà un avviso "Il cane è diventato un canarino"
(non l'ho testato che sono dal cellulare)