Javascript CommonJS函数声明范围良好实践

Javascript CommonJS函数声明范围良好实践,javascript,node.js,scope,commonjs,Javascript,Node.js,Scope,Commonjs,在这种情况下,在CommonJS模块中声明函数是否有一个好的做法: // function foo() { ... } module.exports = function () { // function foo () { ... } return function () { // function foo () { ... } return foo(); }; }; 函数foo{}应该去哪里? 当然,我假设您真的可以在模块代码中的3种可

在这种情况下,在CommonJS模块中声明函数是否有一个好的做法:

// function foo() { ... }

module.exports = function () {
   // function foo () { ... }

   return function () {
        // function foo () { ... }

        return foo();
   };
};
函数foo{}
应该去哪里?
当然,我假设您真的可以在模块代码中的3种可能性之间进行选择,并且所有这些可能性都可以正常工作。我用一个函数作为例子,因为我认为它使我的问题更清楚,但它也适用于可以封装在这些作用域中的任何代码逻辑。

module.exports的目的是使某些东西可以在其他模块中导入,这就是它真正做的


这意味着,如果没有module.exports,您将使用相同的约定。

module.exports的目的是使某些内容可用于在其他模块中导入,这就是它所做的全部工作

这意味着在没有module.exports的情况下使用的相同约定适用于此处