In JavaScript, PL / SQL und einigen anderen Sprachen können Funktionen verschachtelt, dh in einer anderen Funktion deklariert werden. Dies könnte verwendet werden, um eine große Funktion in kleinere Teile zu zerlegen, diese Teile jedoch im Kontext der größeren Funktion zu halten.
function doTooMuch() {
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
// doTooMuch body
doSomething();
doSomethingElse();
doYetAnotherThing();
}
In einigen Fällen, wenn diese kleineren Funktionen keine lokalen Variablen der größeren Funktion verwenden, kann dies leicht zu einer Version geändert werden, in der alle Funktionen nicht verschachtelt sind.
function doSomething () {
...
}
function doSomethingElse() {
...
}
function doYetAnotherThing() {
...
}
function doTooMuch() {
doSomething();
doSomethingElse();
doYetAnotherThing();
}
Unter der Annahme, dass diese verschachtelten Funktionen nirgendwo anders verwendet werden sollen, ist es besser, sie im Kontext der großen Funktion zu halten, oder ist es schlecht, weil genau dies die große Funktion groß macht?
quelle
jquery(function($){ $('#id').click(function(){...}); }
Dies ist eine dieser Fragen, die keine richtige Antwort haben, und Wörter wie "persönliche Präferenz", "Teampraxis" kommen in den Sinn. Meiner Meinung nach gehören kleine Funktionen (hier ist eine andere subjektive Sache), die nirgendwo verwendet werden, zu ihren übergeordneten Funktionen, insbesondere wenn sie unbenannt werden können.
quelle
Diese Frage hat keine richtige Antwort, da keine der beiden Optionen die Kapselung maximiert. Wenn Sie sie verschachteln, haben sie weiterhin Zugriff auf Variablen, die sie nicht sollten. Wenn Sie dies nicht tun, haben andere Funktionen Zugriff auf Funktionen, die sie nicht sollten. In jedem Fall verlierst du.
quelle