$watchCollectionを用いる。
$watchCollectionは$watchと引数が多少ことなり、第1引数はオブジェクトか文字列を受け取る。
// scope内の変数であれば文字列で指定可能
$scope.$watchCollection('user', function() {
// 処理
});
// オブジェクトを渡せばそれを監視してくれる
$scope.$watchCollection(obj, function() {
// 処理
});
階層が深い巨大なオブジェクトを監視させたい場合にとても有効。