2

我想"use strict";使用 javascript 模式,但在严格警告方面存在一些问题。我有一个“小部件”,例如:

var Widget = function () { /* ... */ }

在我这样使用它之前(在模块内):

(function () {
    var w1 = new Widget();
}());

当我添加"use strict";到此上下文时,我收到"Widget"未定义的警告:

(function () {
    "use strict";
    var w1 = new Widget();      // <- warning here
}());

这样做的正确方法是什么?

我应该以不同的方式定义我的“小部件”吗?

4

1 回答 1

2

在严格模式下,您不会意外创建全局变量。正如您所注意到的,尝试这样做会引发参考错误。因此,您需要命名一个已Widget分配的对象:

window.Widget = function () { /* ... */ }
(function () {
    "use strict";
    var w1 = new window.Widget();
}());

更多信息:MDNwww.nczonline.net

于 2013-01-03T15:00:06.033 回答