W JavaScript, PL / SQL i niektórych innych językach funkcje mogą być zagnieżdżone, tzn. Zadeklarowane w innej funkcji. Można to wykorzystać do podzielenia dużej funkcji na mniejsze części, ale zachowaj je w kontekście większej funkcji.
function doTooMuch() {
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
// doTooMuch body
doSomething();
doSomethingElse();
doYetAnotherThing();
}
W niektórych przypadkach, gdy te mniejsze funkcje nie używają zmiennych lokalnych większej funkcji, można to łatwo zmienić na wersję, w której wszystkie funkcje są odszyfrowane.
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
function doTooMuch() {
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Zakładając, że tych zagnieżdżonych funkcji nie można używać nigdzie indziej, czy lepiej jest trzymać je w kontekście dużej funkcji, czy jest to złe, ponieważ właśnie to sprawia, że duża funkcja jest dobra?