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?
sumber
jquery(function($){ $('#id').click(function(){...}); }
Ini adalah salah satu pertanyaan yang tidak memiliki jawaban yang benar dan kata-kata seperti "preferensi pribadi", "latihan tim" muncul di benak Anda. Menurut pendapat saya, fungsi-fungsi kecil (sekarang ini hal subyektif lain) yang tidak digunakan di mana saja termasuk dalam fungsi orangtua mereka, terutama ketika mereka dapat dinamai.
sumber
Pertanyaan ini tidak memiliki jawaban yang benar, karena tidak ada pilihan yang memaksimalkan enkapsulasi. Jika Anda membuat sarang, mereka masih memiliki akses ke variabel yang seharusnya tidak mereka miliki. Jika tidak, maka fungsi lain memiliki akses ke fungsi yang seharusnya tidak. Bagaimanapun, Anda kalah.
sumber