0
var revealed = function(){
   var a = [1,2,3];
   function abc(){
     return (a[0]*a[1])+a[2]);
   }

   return {
      name: 'revealed',
      abcfn: abc
   }

   module.exports = revealed;
}();

如何将 CommonJS 模式与 Revealing Module 模式结合使用?当我尝试做module.exports = revealed;并尝试将模块包含在某处以调用该函数时,它会抛出错误消息function not found

var module = require('module');
module.abc();

无法调用未定义的方法。

4

2 回答 2

5

您在分配给 module.exports 之前返回对象!

你想要的是这样的:

var revealed = function(){
   var a = [1,2,3];
   function abc(){
     return (a[0]*a[1])+a[2]);
   }

   return {
      name: 'revealed',
      abcfn: abc
   }
}();

module.exports = revealed;
于 2013-01-30T11:10:50.560 回答
2

在您的模块功能内部,未定义显示。

您可能会这样做:

var revealed = function(){
   var a = [1,2,3];
   function abc(){
     return (a[0]*a[1])+a[2]);
   }

   return module.exports = {
      name: 'revealed',
      abcfn: abc
   }
}();
于 2013-01-30T11:10:51.243 回答