На производительность AngularJS влияет количество привязок, которое использует загружаемое в настоящее время представление (страница), и часы, которые вы настраиваете вручную, используя $watch
. Все это связывание работает только с свойствами, объявленными в $ scope.
Это означает, что если вы не являетесь обязательным объектом для просмотра или не просмотра его, лучше не объявлять его в области $ scope (также называемой предотвращением загрязнения области).
this
, как описано в сообщении SO this
, имеет другой контекст при вызове Angular (например, в случае ng-click) и при создании контроллера.
Так что все, что вы заявляете на this
(при обращении к контроллеру), технически не может быть связано с представлением, поскольку оно не объявлено в области.
Но Угловой придумал синтаксис controller as
, где он позволяет нам использовать свойства и методы над объектом контроллера. В таких сценариях свойства, объявленные над контроллером, связаны в представлении с использованием синтаксиса ctrl.prop
. Внутренне Угловой делает что-то вроде этого, когда вы делаете ng-controller='HomeController as ctrl'
$scope.ctrl=this
Который в основном означает, Угловой прикрепляют полный объект контроллера к $scope
и, следовательно, связываясь с работой свойства контроллера.
Так что единственное, что имеет значение с точки зрения производительности, - это отслеживание количества привязок.
Возможный дубликат [this vs $ scope в контроллерах AngularJS] (http://stackoverflow.com/questions/11605917/this-vs-scope-in-angularjs-controllers) –
, пожалуйста, внимательно прочитайте вопрос, не просите уважение Я прошу кое-что еще – Yogesh
: https://github.com/johnpapa/angular-styleguide –