【问题标题】:Is there any difference between angular.module and window.angular.module?angular.module 和 window.angular.module 有什么区别吗?
【发布时间】:2015-08-20 08:54:13
【问题描述】:

我正在审查以下代码:

(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开头。

既然我假设 angular 是针对窗口的,那么这两种语法之间有什么真正的、实际的区别吗?

【问题讨论】:

    标签: javascript angularjs scope


    【解决方案1】:

    一点也不。在浏览器窗口中是全局对象,

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-11
          • 2013-02-03
          • 2021-06-03
          相关资源
          最近更新 更多