在Node.js中创建具有多个“静态”调用的函数(即不使用new
关键字)的模块时,使用哪种模式更好。我缺少ES6中的等价物吗?
模式1。
// math.js
module.exports.add = (x, y) => {
return x + y;
}
module.exports.multiply = (x, y) => {
return x * y;
};
// app.js
const math = require('./math.js');
console.log(math.add(2, 3));
模式2。
// math.js
module.exports = {
add: (x, y) => {
return x + y;
},
multiply: (x, y) => {
return x * y;
}
};
// app.js
const math = require('./math.js');
console.log(math.add(2, 3));
答案 0 :(得分:5)
默认情况下,module.exports
是一个空对象。所以,你的两种模式之间的结果确实没有区别。
您的第一个模式是一次只向默认的空对象添加一个方法。
您的第二个模式是创建一个新对象,向其添加方法,然后用新对象替换默认的module.exports
对象。
在Node.js中创建模块时,哪种模式更好 有多个函数被称为"静态"即不是 使用新关键字。
结果是相同的两种方式,只是编码风格偏好的问题,你喜欢编写代码的方式。
我缺少ES6中的等效物吗?
ES6并没有真正为此引入任何新内容。您只是定义对象的属性。
答案 1 :(得分:1)
我猜没有"正确的方式"或"正确的模式"为了那个原因。在这两种情况下,你讲的大部分都是一样的。你只是把它写得有点不同。两者都将在一个对象中进行转换,并由其他模块导入。
话虽如此,我喜欢第二个。它给了我更好的感觉"捆绑"。
我会以
的形式导入date_time