返回RequireJS中的模块

时间:2013-06-14 03:54:57

标签: requirejs

我正在重构一个大的JavaScript代码库来使用RequireJS。不幸的是,我正在处理的许多文件都不是面向对象的,并且在没有重大修改的情况下无法返回对象。是否有更有效的方法让“依赖”模块访问模块中包含的函数和变量(不返回对象)?

我已经阅读了有关使用exports语法定义模块的内容,但目前还不清楚这是否是针对这种情况的有效解决方案。

1 个答案:

答案 0 :(得分:4)

在定义的模块中,exports对象是从模块导出并传递给任何模块所需的对象。

考虑一下:

define(["exports"], function(exports){
  exports.myCustomFunction = function(){};
  exports.myCustomObject = {};
  exports.myCustomVariable = true;
})

此模块会将您想要公开的所有不同功能和/或对象放在exports对象上。 此时,RequireJS将使用该exports对象传递给需要它的模块:

require(["nameOfCustomModule|filename"], function(myCustomModule){
  //evaluates to true
  console.log(myCustomModule.myCustomVariable);
})

这是一个简单的小提琴。只需调出控制台,您就会看到其中记录的值。 http://jsfiddle.net/xeucv/

希望这有点清除它!