En JavaScript, PL / SQL et certains autres langages, les fonctions peuvent être imbriquées, c'est-à-dire déclarées dans une autre fonction. Cela pourrait être utilisé pour diviser une grande fonction en morceaux plus petits, mais garder ces morceaux dans le contexte de la fonction plus grande.
function doTooMuch() {
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
// doTooMuch body
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Dans certains cas, lorsque ces fonctions plus petites n'utilisent pas de variables locales de la fonction plus grande, cela pourrait facilement être changé en une version où toutes les fonctions ne sont pas imbriquées.
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
function doTooMuch() {
doSomething();
doSomethingElse();
doYetAnotherThing();
}
En supposant que ces fonctions imbriquées ne doivent pas être utilisées ailleurs, est-il préférable de les conserver dans le contexte de la grande fonction ou est-ce mauvais parce que c'est exactement ce qui rend la grande fonction, eh bien, grande?
la source
jquery(function($){ $('#id').click(function(){...}); }
C'est une de ces questions qui n'ont pas de bonne réponse et des mots comme "préférence personnelle", "pratique d'équipe" viennent à l'esprit. À mon avis, les petites fonctions (maintenant voici une autre chose subjective) qui ne sont utilisées nulle part appartiennent à leurs fonctions parentales, surtout lorsqu'elles peuvent être sans nom.
la source
Cette question n'a pas de bonne réponse, car aucun des deux choix ne maximise l'encapsulation. Si vous les imbriquez, ils ont toujours accès à des variables qu'ils ne devraient pas. Si vous ne le faites pas, alors d'autres fonctions ont accès à des fonctions qu'elles ne devraient pas. De toute façon, vous perdez.
la source