Почему использование $ rootScope с функциями не рекомендуется?

В то время как я смотрю на FEQs Angularjs, я видел статью ниже:

$ rootScope существует, но его можно использовать для зла

Области в Angular образуют иерархию, прототипно наследуя от корневой области видимости в верхней части дерева. Обычно это можно игнорировать, поскольку большинство представлений имеют собственный контроллер и, следовательно, область видимости.

Иногда есть фрагменты данных, которые вы хотите сделать глобальными для всего приложения. Для этого вы можете ввести$rootScope и установить значения на него, как и любой другой объем. Так как области видимости наследуются от корневой области видимости, эти значения будут доступны для выражений, связанных с такими директивами, какng-show так же, как значения на вашем местном$scope.

Конечно, глобальное состояние отстой, и вы должны использовать$rootScope экономно, как вы (надеюсь) использовать с глобальными переменными на любом языке. В частности, не используйте его для кода, только для данных. Если вы склонны поставить функцию на$rootScopeпочти всегда лучше поместить его в службу, которую можно внедрить там, где это необходимо, и ее легче протестировать.

И наоборот, не создавайте сервис, единственная цель которого - хранить и возвращать биты данных.

- AngularJS FAQ - $ rootScope существует, но его можно использовать для зла

Поэтому я сомневаюсь, почему $ rootScope не рекомендуется для функций как глобальной функции? Есть ли проблемы с производительностью?

Ответы на вопрос(3)

Ваш ответ на вопрос