我想在javascript中使用"use strict";
模式但是在严格警告方面存在一些问题。
我有一个“小部件”,例如:
var Widget = function () { /* ... */ }
在我使用它之前(在模块内):
(function () {
var w1 = new Widget();
}());
当我将"use strict";
添加到此上下文时,我收到警告"Widget"
未定义:
(function () {
"use strict";
var w1 = new Widget(); // <- warning here
}());
这样做的正确方法是什么?
我应该以不同的方式定义我的“小部件”吗?
答案 0 :(得分:2)
在严格模式下,您不会意外地创建全局变量。正如您所注意到的那样,尝试这样做会抛出引用错误。因此,您需要命名一个已分配Widget
的对象:
window.Widget = function () { /* ... */ }
(function () {
"use strict";
var w1 = new window.Widget();
}());
更多信息:MDN,www.nczonline.net