如何获得IIFE的返回值?

1 javascript iife

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

(function() {
    return "Hello World!";
}());
Run Code Online (Sandbox Code Playgroud)

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

var result = require("./iife");
console.log(result);
Run Code Online (Sandbox Code Playgroud)

result{}而不是Hello World!

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

Que*_*tin 5

您必须在左侧捕获它:

const return_value = (function() {
    return "Hello World!";
}());
Run Code Online (Sandbox Code Playgroud)

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

module.exports = return_value;
Run Code Online (Sandbox Code Playgroud)

但是如果你使用的是 CommonJS 模块,那么首先使用 IIFE 是没有意义的。IIFE 用于隔离变量,模块无论如何都会这样做。

module.exports = "Hello World!";
Run Code Online (Sandbox Code Playgroud)