В 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();
}
Предполагая, что эти вложенные функции не должны использоваться где-либо еще, лучше ли держать их в контексте большой функции или это плохо, потому что именно это делает большую функцию, ну, в общем, большой?