Глобально определенные контроллеры AngularJS и инкапсуляция
В соответствии с руководством AngularJS, функция контроллера просто находится в глобальной области видимости.
http://docs.angularjs.org/tutorial/step_04
Сами функции контроллера автоматически разбираются в инкапсулированную область или они находятся в глобальной области? Я знаю, что им передается ссылка на их собственную область $, но похоже, что сами функции просто находятся в глобальной области видимости. Очевидно, что это может вызвать проблемы в будущем, и я научился на своем опыте и образовании инкапсулировать. Более того, если они живут в глобальном масштабе, не будет ли считаться наилучшей практикой инкапсулировать их в объект, на который будет ссылаться подобное :
Object.functionName();
Вместо этого:
functionName();
Чтобы предотвратить проблемы, возникающие при загрязнении глобальной области действия (т. Е. Переопределение функций и т. Д.)