这样做对性能有什么影响吗:
// utils.js
module.exports = function() {/* do something */};
// then use it like this
function someTask(param) {
/* do something with param */
return require('./utils')(param);
}
这只是一种不好的做法还是存在任何性能差异?
No.当您需要某些内容时,它会将该需求的结果存储在require.cache
上,键是模块的完整路径。后续调用 require 将仅返回缓存的模块。
如果出于某种原因需要从缓存中删除模块,则可以这样做:
delete require.cache[require.resolve('./utils')];
require.resolve
返回模块的完整路径,即缓存上的键。从缓存中清除模块后,下一次调用require
将再次从磁盘中提取模块。
可读性,在文件顶部满足您的要求可能是一种很好的做法,但除了从缓存返回模块所涉及的一点逻辑之外,我认为没有理由将其视为性能问题。