ใน 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();
}
สมมติว่าฟังก์ชั่นที่ซ้อนกันนั้นไม่ควรใช้ที่อื่นมันจะดีกว่าหรือไม่ที่จะเก็บไว้ในบริบทของฟังก์ชั่นขนาดใหญ่หรือไม่ดีเพราะนี่คือสิ่งที่ทำให้ฟังก์ชั่นขนาดใหญ่ดีขนาดใหญ่?