$watch vs $on in angularjs

$On()The $on is used to listen to each events.$on also work to push a function into a stack and returns to another function and clean the original functions from that stack.$watch()The angularjs create watch internally.The watch means that angularjs watches the changes in the variable on the $scope object.The watches are created using the $scope.$watch() method.

The $scope.watch() method creates a watch of some variables. When you register a watch you need to pass two functions1. One is value function2. and other is listener functionfor example$scope.$watch(function() {},function() {});