[英]If a function is only used in another function should I keep it inside or outside it?
就像在主題中一樣。 我有一個像下面這樣的函數,我在一個函數中聲明了很多幫助函數(是示例中的兩倍),因為它是唯一一個使用它們的函數。
我的問題是:我應該提取功能之外的那些幫助功能來維護規則“功能應該做一份工作並做好”還是應該在內部? 我還讀到更高級別的函數應該更高以獲得更好的可讀性,但它不知何故不起作用(不應該提升使其工作?)。
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)
}
}
如果在外面聲明該函數,並且只在一個函數中使用它,那么就會造成命名空間污染。 ( 什么是命名空間污染? )因此,我建議將其保留在內部。 此外,如果你這樣做,它也更容易閱讀,因為它將更接近使用它的代碼。
為了解決您關於提升的問題,它僅在您聲明您的函數而不將其分配給變量時才有效。
我認為當你在其他函數中編寫函數時,內存使用比寫出函數要好,但你不能在另一個函數中使用它是本地函數而不是公共函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.