从性能的角度来看,通过将代码包装在函数中然后导出它来调用代码之间是否有任何区别:
function doSomething () {
// doing something here
}
module.exports = doSomething();
只是要求它没有任何出口?像这样:
myModule.js
// Code doing something
需要模块的文件:
var doSomething = require('./myModule');
如果模块内部代码的目的只运行一次,我是否需要将其存储在变量中?
答案 0 :(得分:0)
如果您不需要该函数的返回值,则不必将其存储在变量中。
与...的区别:
function doSomething () {
// doing something here
}
module.exports = doSomething();
并使用:
var x = require('module');
var y = require('module');
VS
function doSomething () {
// doing something here
}
module.exports = doSomething;
并使用:
var x = require('module')();
var y = require('module')();
在第一种情况下,该函数只运行一次,而在第二种情况下,该函数将运行两次。
答案 1 :(得分:0)
不同之处在于,如果您只是在没有module.exports的情况下包含它,那么代码将立即执行,但对模块是私有的。如果使用module.exports以某种方式导出数据,则只能访问数据。它可以是函数或Javascript对象。从本质上讲,您可以将模块中的所有内容视为完全隐藏在应用程序中的其他所有内容中。
我所知道的唯一捷径是JSON文件。如果你看这里:Module.exports vs plain json for config files,你可以看到你可以要求('file.json'),它会用你可以在你的应用程序中使用的Javascript对象替换json文件的内容。