对CommonJS模块使用范围函数的常见做法,还是不必要的?

时间:2014-05-07 21:18:17

标签: javascript commonjs

我正在编写我的第一个CommonJS模块。

通常的做法是在范围函数中定义CommonJS模块,如此

(function() {
  module.exports = ...
})();

或者这个没有价值吗?

1 个答案:

答案 0 :(得分:3)

不,没有必要。在一个立即调用的函数表达式(iife)中包含所有代码是基于浏览器的问题的解决方案。

如果您的模块在Node.JS中使用,则模块将在其自己的范围内执行。查看他们的docs page示例,其中没有一个使用iife。但是,如果您在浏览器中使用CommonJS模块,则需要将CommonJS模块与watchify或commonjs等工具捆绑在一起。这些工具无论如何都将每个模块定义放入其自己的封闭功能中,实现与生命相同的保护。