对于模块中的每个函数,包含许多方法的1个module.export和module.export在效率上有区别吗?
module.exports={
func1: function (req, res, next) {},
func2: function (req, res, next) {}
}与
module.exports.func1 = function(){};
module.exports.funct2 = function(){};我被告知要调查这两个选项之间是否存在差异。一种方式比另一种方式好吗?谢谢。
发布于 2016-09-11 19:51:08
除了第一个将导出多个函数,而第二个将逐个导出之外,上面两个之间没有区别。当您需要在另一个模块中使用时,两者都返回相同的对象。还有另一种导出模块的方法,称为单值导出,这与您提到的方法不同。
module.exports = function () { ··· };发布于 2016-09-11 19:56:44
实际上,这是没有区别的。在CommonJS中,module.exports只是另一个对象。这两个示例都导出与该对象上的关键点相同的功能。
唯一真正的区别是,在第一个示例中,您完全重新分配了module.exports对象,而在第二个示例中,您只是将值分配给键。这在任何正常的用例中都是无关紧要的。
在Node中,第二个示例可以缩写为
exports.func1 = function() {};
exports.func2 = function() {};第一种形式可用于导出默认值和一些补充值,这实际上是一种相当常见的模式。请考虑以下几点:
function express() {}
function Router() {}
module.exports = express
module.exports.Router = Router这将允许您通过
var express = require('express')
var Router = express.Router虽然稍微偏离了这个问题的主题,但ES6类比如下所示:
export const func1 = function() {}
export const func2 = function() {}或
export {
func1,
func2
}https://stackoverflow.com/questions/39434792
复制相似问题