gpt4 book ai didi

javascript - 实例化事物的 Node 模块?

转载 作者:行者123 更新时间:2023-11-30 10:41:47 24 4
gpt4 key购买 nike

我可以构建一个导出实例化变量的模块吗?

模块:

var module1 = require('module1')
var Module2 = require('module2')

module1.dosomething(variables)
exports.module1 = module1

//or

module2 = new Modle2(variables)
module2.dosomething(variables)
exports.module2 = module2

我是否可以在许多其他文件中引用上述模块并将导出用作实例化变量,或者它们是否会在每次我需要它们时重新实例化并且不在需要它们的文件之间共享。

谢谢!

最佳答案

您的示例令人困惑,因为您在多个上下文中使用 module1,既作为模块、另一个模块中的变量,又作为该模块的导出属性。

将模块视为闭包并将导出视为返回值。如果您想通过导出创建新实例,您很可能想要导出一个函数/工厂函数并每次调用它,因为它只返回对象,所以其他任何内容都将被共享。

模块 1

module.exports.var1 = function(opts) {
// do stuff
return variables;
};

module.exports.var2 = new Blah(); // single instance

其他模块

var var1 = require('module1').var1({ opt1: 'foo' }); // New instance every time
var var2 = require('module1').var2; // Same var instance even if you include in another module

关于javascript - 实例化事物的 Node 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com