在 Node.js 模块中使用立即执行函数表达式(IIFE)是否有意义?

5
在浏览器中使用JavaScript时,我总是使用IIFE来避免全局命名空间污染。
(function() {})();

但是由于Node.js使用common.js,并且几乎每个文件本身都是一个模块,所以在编写新代码时使用IIFEs(如果使用ES5)是否有意义呢?

1个回答

6
不,它不会。
在内部,Node已经使用一个函数包装模块的内容以创建一个新的作用域。
您可以在此文件中找到具体细节;包装模块内容的函数在这里定义,在这个方法中,您会看到在包装模块代码后,它几乎立即执行(类似于IIFE)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接