Listener dla zmian wartości właściwości w obiekcie javascript

Przechodząc przez dokumentację javascript, znalazłem następujące dwie funkcje w obiekcie javascript:

.watch - Sprawdza, czy obiekt ma przypisaną wartość i uruchamia funkcję, gdy to nastąpi.
.unwatch - Usuwa zestaw zegarków za pomocą metody zegarka.

Przykładowe użycie:

o = { p: 1 };
o.watch("p", function (id,oldval,newval) {
    console.log("o." + id + " changed from " + oldval + " to " + newval)
    return newval;
});

Za każdym razem, gdy zmieniamy wartość właściwości „p”, ta funkcja zostaje wyzwolona.

o.p = 2;   //logs: "o.p changed from 1 to 2"

Pracuję nad javascriptem od kilku lat i nigdy nie korzystałem z tych funkcji.
Czy ktoś może rzucić kilka dobrych przypadków użycia, w których te funkcje się przydadzą?

questionAnswers(5)

yourAnswerToTheQuestion