[英]Global variables in JavaScript strict mode
一个简单的Javascript问题,例如我有一个像这样的Angular app.js;
'use strict';
var eventsApp = angular.module('eventsApp',[]);
我读到在Javascript文件的开头使用“use strict”使得该文件中的所有变量都被处理为严格模式,这意味着当你使用全局变量(?)时会抛出错误,但是我们如何访问来自我们所有控制器和服务的“eventApp”对象,如果它不在全球范围内?
错误的假设是在严格模式下不允许所有全局变量。 实际上只有未定义的全局变量会引发错误。 (事实上,如果你不能使用任何全局变量,你基本上根本无法做任何事。在全球范围内必须至少有一些东西。)
例如:
"use strict";
var a = "foo";
var b;
(function() {
a = "bar"; // this is ok, initialized earlier
b = "baz"; // this is also ok, defined earlier
c = "qux"; // this is not, creating an implicit global
})();
使用变量a
或b
不是问题,但c
会抛出错误。 在示例中使用eventApp
变量应该没有问题。
您不必引用eventsApp
因为angular将通过您用来定义模块的名称'eventsApp'来保存对象的引用。
因此,在所有其他文件中,您可以使用:
angular.module('eventsApp');
要访问该模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.