我正在审核以下代码:
(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
开头。
因为我假设角度是针对窗口的,所以这两种语法之间是否有任何实际的区别?
答案 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
我会因为意图选择较早的那个。从可读性的角度来看,它会更好更清洁。