Angular $ assistir | retornando o item da função

Estou interessado em descobrir porque eu sempre tenho que fazer isso

$scope.$watch( function() {
   return $scope.someData;
}, function( value ) {
   console.log( value );
});

para o angular realmente observar os dados, por que eu tenho que fazer isso, essa é uma das coisas que realmente me incomodam porque parece inútil.

Se eu fizer algo assim

$scope.$watch($scope.someData, function( value ) {
   console.log( value );
});

O que é melhor, nunca funciona?

Eu também uso muito isso com fábricas

diz isso$data é uma fábrica que tenho que fazer

$scope.$watch( function() {
   return $data.someData;
}, function( value ) {
   console.log( value );
});

questionAnswers(4)

yourAnswerToTheQuestion