¿Cómo funciona la función $ watch de AngularJS?

Estoy leyendo mucho sobre AngularJS hoy en día, y encontré esa función mágica de $ watch. Entiendo cómo usarlo, pero me pregunto cómo se implementa en segundo plano. ¿Es una función de intervalo de tiempo? ¿O es Angular llamando a este reloj cada declaración ejecutada?

No quiero profundizar en el código fuente en este momento, y me alegraría que alguno de ustedes ya sepa la respuesta y quiera compartir su conocimiento sobre el tema.

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta