Em JavaScript, PL / SQL e algumas outras linguagens, as funções podem ser aninhadas, ou seja, declaradas em outra função. Isso pode ser usado para dividir uma função grande em partes menores, mas mantenha essas partes dentro do contexto da função maior.
function doTooMuch() {
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
// doTooMuch body
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Em alguns casos, quando essas funções menores não usam variáveis locais da função maior, isso pode ser facilmente alterado para uma versão em que todas as funções não são aninhadas.
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
function doTooMuch() {
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Supondo que essas funções aninhadas não devam ser usadas em nenhum outro lugar, é melhor mantê-las no contexto da função grande ou é ruim porque é exatamente isso que torna a função grande, bem, grande?