Dalam JavaScript, PL / SQL dan beberapa bahasa lain, fungsi dapat disarangkan, yaitu dideklarasikan dalam fungsi lain. Ini dapat digunakan untuk memecah fungsi besar menjadi potongan-potongan kecil, tetapi menyimpan potongan-potongan itu dalam konteks fungsi yang lebih besar.
function doTooMuch() {
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
// doTooMuch body
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Dalam beberapa kasus, ketika fungsi-fungsi yang lebih kecil tidak menggunakan variabel lokal dari fungsi yang lebih besar, ini dapat dengan mudah diubah ke versi di mana semua fungsi tidak diuji.
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
function doTooMuch() {
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Dengan asumsi bahwa fungsi-fungsi bersarang tidak dapat digunakan di tempat lain, apakah lebih baik menyimpannya dalam konteks fungsi besar atau apakah itu buruk karena inilah yang membuat fungsi besar, yah, besar?