首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在节点中,为什么有些模块会导出函数?

问在节点中,为什么有些模块会导出函数?
EN

Stack Overflow用户
提问于 2013-06-29 03:39:37
回答 1查看 147关注 0票数 1

在Node.js中,某些模块会导出对象

代码语言:javascript
复制
var Constructor = function() {};
exports.MyObject = new Constructor();
// or
module.exports = new Constructor();

还有一些模块会导出函数:

代码语言:javascript
复制
var Constructor = function() {};
exports.MyConstructor = Constructor;
// or
module.exports = Constructor;

什么时候应该导出对象,什么时候应该导出函数?

EN

回答 1

Stack Overflow用户

发布于 2013-06-29 03:39:37

一个考虑因素可能是模块模块的caching特性。来自文档;我的重点是:

模块在第一次加载后进行缓存。这意味着(尤其是)每次对require('foo')的调用都会得到完全相同的对象返回的,如果它会解析到相同的文件的话。

对require('foo')的多次调用可能不会导致模块代码多次执行。这是一个重要的特性。有了它,可以返回“部分完成”的对象,从而允许加载传递依赖,即使它们会导致循环。

如果您想让一个模块多次执行代码,然后导出一个函数并调用该函数,则为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17372398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档