我想知道是否值得用这种方式编写有角度的东西:

(function(angular, module) {

  'use strict';

  module.controller('MyCtrl', function($scope) {
    // possibly use helperFunction here
  });

  function helperFunction() {
    ...
  }

})(angular, angular.module('myModule'));


或这种方式(使用App对象并将应用程序内容放入其中:

App = App || {};

App.myModule = App.myModule || angular.module('myModule', []);

App.myModule.controller('MyCtrl', function($scope) {

  'use strict'

  // possibly use helperFunction here

  function helperFunction() {
    ...
  }

});


而不是像这样使用常规方式

angular.module('myModule').controller('MyCtrl', function($scope) {

  'use strict'

  // possibly use helperFunction here

  function helperFunction() {
    ...
  }

});


这是我想到的三种构建应用程序代码的可能方式(不计算requirejs)。我在大多数地方都使用“常规”(最后一种),但是我想知道使用这两种以前的方法是否有任何好处。也许在某些特殊情况下有用时,我不知道。

最佳答案

第一种方法的好处是不会污染全局名称空间,从而降低了名称冲突的风险。如果扩展现有项目或模块将在多个上下文中使用(例如,公共库),则这尤其重要。

我个人更喜欢第三种风格而不是第二种风格。有人可能会说,优化器更擅长于优化非全局代码。

10-04 16:15