Escucha de cambios de valor de propiedad en un objeto javascript

Al revisar la documentación de javascript, encontré interesantes las siguientes dos funciones en un objeto de javascript:

.watch - Observa si a una propiedad se le asigna un valor y ejecuta una función cuando eso ocurre.
.unwatch - Elimina un punto de observación ajustado con el método de vigilancia.

Uso de la muestra:

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

Cada vez que cambiamos el valor de propiedad de "p", esta función se activa.

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

Estoy trabajando en javascript durante los últimos años y nunca usé estas funciones.
¿Alguien puede, por favor, lanzar algunos buenos casos de uso donde estas funciones sean útiles?

Respuestas a la pregunta(5)

Su respuesta a la pregunta