【发布时间】:2015-11-07 20:36:52
【问题描述】:
我无法将其重写为在“严格”模式下工作。由于未明确定义“this”,因此我在编译时遇到 jshint 错误。我在想我的大脑只是不够抽象地思考,无法找到创造性的解决方案。任何帮助,将不胜感激。代码改编自通用模块定义 Github 仓库:https://github.com/umdjs/umd/blob/master/returnExports.js
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD Module
define([], factory);
} else if (typeof module === 'object' && module.exports) {
// Node Module
module.exports = factory();
} else {
// Browser Global
root.returnExports = factory();
}
}(this, function () {
return {};
}));
【问题讨论】:
-
嗯...
this指的是什么?这取决于环境吧?你可以根本不传递它,而是在 else 语句中引用window。 -
@KevinB 正确,
this指的是当前环境。因此,使用window将允许在某些环境中使用正确的功能,但不允许环境之间的互操作性,这是我的目标。我已经用通用模块定义 Github 项目的链接更新了我的问题