Em JavaScript, PL / SQL e algumas outras linguagens, as funções podem ser aninhadas, ou seja, declaradas em outra função. Isso pode ser usado para dividir uma função grande em partes menores, mas mantenha essas partes dentro do contexto da função maior.
function doTooMuch() {
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
// doTooMuch body
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Em alguns casos, quando essas funções menores não usam variáveis locais da função maior, isso pode ser facilmente alterado para uma versão em que todas as funções não são aninhadas.
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
function doTooMuch() {
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Supondo que essas funções aninhadas não devam ser usadas em nenhum outro lugar, é melhor mantê-las no contexto da função grande ou é ruim porque é exatamente isso que torna a função grande, bem, grande?
fonte
jquery(function($){ $('#id').click(function(){...}); }
Essa é uma daquelas perguntas que não têm resposta certa e palavras como "preferência pessoal", "prática em equipe" vêm à mente. Na minha opinião, pequenas funções (agora, aqui está outra coisa subjetiva) que não são usadas em nenhum lugar pertencem às suas funções-pai, especialmente quando podem ser sem nome.
fonte
Esta pergunta não tem resposta certa, porque nenhuma das opções maximiza o encapsulamento. Se você os aninhar, eles ainda terão acesso a variáveis que não deveriam. Caso contrário, outras funções terão acesso a funções que não deveriam. De qualquer maneira, você perde.
fonte