如何获取 IIFE 的 return 值?

How to get return value of IIFE?

我在文件中有以下 IIFE iife.js:

(function() {
    return "Hello World!";
}());

我想在另一个文件中得到这个函数的结果:

var result = require("./iife");
console.log(result);

但是 result{} 而不是 Hello World!

如何从另一个文件访问 IIFE 的 return 值,最好不更改 iife.js 中的代码?

您必须在左侧捕获它:

const return_value = (function() {
    return "Hello World!";
}());

但是如果你想从 CommonJS 模块导出它,那么你需要将它分配给模块的导出:

module.exports = return_value;

但是,如果您使用的是 CommonJS 模块,那么一开始就没有必要使用 IIFE。 IIFE 用于隔离变量,无论如何模块都会这样做。

module.exports = "Hello World!";