Pergunta de entrevista da empresa AppDynamics

How is two-way data binding working in Angularjs? How is $watch() and $digest() function implemented in Angularjs?