如果一个函数只用于另一个函数,我应该把它放在里面还是放在外面



喜欢主题中的内容。我有一个如下所示的函数,并且我在函数中声明了很多帮助函数(是示例中的两倍(,因为它是唯一使用它们的函数。

我的问题是:我应该提取函数之外的帮助函数来维护"函数应该做一项工作并做好它"的规则,还是应该在函数内部?我也读到过,为了更好的可读性,更高级别的函数应该更高,但它不知何故不起作用(提升不应该让它起作用吗?(。

const queryThings = async (body = defaultBody) => {
try {
(...)
// helping functions
const isNonTestDeal = obj => (...)
const isNonEmpty = obj => (...)
const replaceHTMLEntity = obj => (...)
const extractCountries = o => (...)
const queried = await query(...) // that one is outside this function
const cases = queriedCases
.filter(isNonTestDeal)
.map(obj => {
let countries = [(...)]
.filter(isNonEmpty)
.map(replaceHTMLEntity)
.map(extractCountries)
let data = {
(...)
}
return data
})
.filter(obj => (...))
.sort((a,b) => a.d - b.d)
.slice(0, 45) // node has problem with sending data of more than 8KB
return cases
} catch (error) {
console.log(error)
}
}

如果在外部声明函数,并且只在一个函数中使用它,则会导致命名空间污染。(什么是名称空间污染?(因此,我建议将其保留在内部。此外,如果您这样做,它也更容易阅读,因为它将更接近使用它的代码。

为了解决您关于提升的问题,只有当您声明函数而不将其分配给变量时,它才有效。

我认为当您在其他函数中编写函数时,内存使用比在函数外编写要好但你不能在另一个函数中使用它,它是本地函数,也不是公共函数

最新更新