gpt4 book ai didi

node.js - UMD javascript 模块也可以在严格模式下工作

转载 作者:太空宇宙 更新时间:2023-11-04 00:51:55 31 4
gpt4 key购买 nike

我在重写此代码以使其在“严格”模式下工作时遇到问题。由于“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 {};
}));

最佳答案

查看您的代码,我发现 root 仅在您位于浏览器中的情况下实际使用,这简化了事情。

这意味着我们可以用以下表达式替换this:

typeof window !== "undefined" ? window : undefined

这在严格模式下有效(我在 Node 中尝试过,它返回 undefined,没有错误),并且 JSHint.com 允许它。

如果您在其他情况下也需要全局对象,您可以链接三元表达式。

关于node.js - UMD javascript 模块也可以在严格模式下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32012589/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com