我应该什么时候在Javascript中创建新对象?
我用这个包裹发送电子邮件。首先,我需要创建一个新的我应该什么时候在Javascript中创建新对象?,javascript,node.js,Javascript,Node.js,我用这个包裹发送电子邮件。首先,我需要创建一个新的mailgun实例,然后使用它发送电子邮件,这是我代码的一个简单版本: const mgInstance = mailgun({ apiKey: '...', domain: '...', }); function sendMail1() { mgInstance.messages().send(/* ... */); } function sendMail2() { mgInstance.messages().send(/*
mailgun
实例,然后使用它发送电子邮件,这是我代码的一个简单版本:
const mgInstance = mailgun({
apiKey: '...',
domain: '...',
});
function sendMail1() {
mgInstance.messages().send(/* ... */);
}
function sendMail2() {
mgInstance.messages().send(/* ... */);
}
这段代码运行良好。我只是想知道是否将用于创建新的mailgun
实例的代码移动到每个函数中,如下所示:
function sendMail1() {
const mgInstance = mailgun({
apiKey: '...',
domain: '...',
});
mgInstance.messages().send(/* ... */);
}
function sendMail2() {
const mgInstance = mailgun({
apiKey: '...',
domain: '...',
});
mgInstance.messages().send(/* ... */);
}
我的问题是:这些实现之间有什么区别吗?它们之间有更好的吗?鉴于
mailgun
工厂功能足够轻量级,我会使用包装工厂:
function getMailerInstance() {
return mailgun({
apiKey: '...',
domain: '...'
});
}
function sendMail1() {
const mgInstance = getMailerInstance();
mgInstance.messages().send(/* ... */);
}
通过这种方式,您还可以轻松地切换到单例模式,或者在调用mailgun
等之前执行其他计算逻辑
我还将创建一个通用的sendMail
函数来处理。。。发送邮件,让其他函数调用,而不是直接使用Mailgun的API。因此,如果需要切换邮件API,只需更改代码的一小部分(即,getMailerInstance
和sendMail
)
还要注意我是如何使用泛型名称getMailerInstance
而不是getMGInstance
,它将代码绑定到Mailgun的
作为一个补充,考虑在<代码> GETMeMeLebug实例中返回一个承诺。
是关于编码模式或更多关于邮件枪的问题吗?如果API密钥和域是相同的,并且只有地址和消息改变,我希望能看到一个function@MaxArt这是关于编码模式的,这取决于:如果您的mailgun实例不占用太多内存并且需要一些时间进行初始化,我将创建一个实例,并在应用程序的生命周期中重复使用它。如果它又大又快,我会在每次需要时重新创建它,这样一旦它离开它的包含函数,它就会被销毁。@mplungjan API键和域是相同的