In JavaScript, PL / SQL e in alcuni altri linguaggi, le funzioni possono essere annidate, ossia dichiarate in un'altra funzione. Questo potrebbe essere usato per suddividere una grande funzione in pezzi più piccoli, ma mantenere quei pezzi nel contesto della funzione più grande.
function doTooMuch() {
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
// doTooMuch body
doSomething();
doSomethingElse();
doYetAnotherThing();
}
In alcuni casi, quando quelle funzioni più piccole non usano le variabili locali della funzione più grande, questo potrebbe facilmente essere cambiato in una versione in cui tutte le funzioni sono inoppugnate.
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
function doTooMuch() {
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Supponendo che quelle funzioni annidate non debbano essere utilizzate da nessun'altra parte, è meglio tenerle nel contesto della funzione grande o è cattiva perché questo è esattamente ciò che rende la funzione grande, beh, grande?