У JavaScript, PL / SQL та деяких інших мовах функції можуть бути вкладені, тобто оголошені в іншій функції. Це можна використати для розбиття великої функції на більш дрібні частини, але зберегти ці частини в контексті більшої функції.
function doTooMuch() {
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
// doTooMuch body
doSomething();
doSomethingElse();
doYetAnotherThing();
}
У деяких випадках, коли ті менші функції не використовують локальні змінні більшої функції, це може бути легко змінено на версію, де всі функції не мають функції.
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
function doTooMuch() {
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Якщо припустити, що ці вкладені функції не використовуватимуться більше ніде, чи краще зберігати їх у контексті великої функції чи це погано, оскільки саме це робить велику функцію ну ну великою?