angular.module和window.angular.module之间有什么区别吗?

时间:2015-08-20 08:54:13

标签: javascript angularjs scope

我正在审核以下代码:

(function () {
    'use strict';

    window.angular
          .module('moduleName')
          .directive('DirectiveName', function () {
            return {
                restrict: 'AE',
                templateUrl: '/app/moduleName/list/template.html',
                controller: 'someController',
                controllerAs: 'someCtrl',
            }
        });
}());

我一直在使用

angular
    .module('myModule')
    //etc

而非以window.angular开头。

因为我假设角度是针对窗口的,所以这两种语法之间是否有任何实际的区别?

3 个答案:

答案 0 :(得分:4)

全局定义的任何变量都附加到窗口。所以没有真正的实际区别。

答案 1 :(得分:4)

完全没有。在浏览器窗口中是全局对象,

并写在这里 - https://developer.mozilla.org/en-US/docs/Web/API/Window/window

  

在网页中,窗口对象也是一个全局对象。这意味着:

     
      
  • 脚本的全局变量实际上是window的属性:

    var global = {data: 0};
    alert(global === window.global); // displays "true"
    
  •   
  • 您可以访问窗口对象的内置属性,而无需键入窗口。前缀:

    setTimeout("alert('Hi!')", 50); // equivalent to using window.setTimeout.
     alert(window === window.window); // displays "true"
    
  •   

答案 2 :(得分:3)

据我所知,除了语法和明确声明之外,我没有看到任何真正的性能差异。

但是,如果您执行window.angular而不是angular我会因为意图选择较早的那个。从可读性的角度来看,它会更好更清洁。