Wirkt sich die Platzierung einer Funktion auf die Leistung von Abschlüssen innerhalb des Geltungsbereichs aus? Wenn ja, wo ist der optimale Ort für die Platzierung dieser Funktionen? Wenn nicht, ist die implizite Assoziation durch eine Schließung Grund genug, eine Funktion logischerweise an einem anderen Ort zu platzieren?
Zum Beispiel, wenn foo ist nicht auf den Wert von localState ist die Tatsache, dass localState ist erreichbar von foo haben Auswirkungen auf foo die Ausführungszeit, den Speicherverbrauch usw.?
(function(){
var localState;
function foo(){
// code
}
function bar(){
// code
return localState;
}
})();
Mit anderen Worten: Wäre dies die bessere Wahl, und wenn ja, warum?
(function(){
function foo(){
// code
}
var localState;
function bar(){
// code
return localState;
}
})();
Darius Bacon hat vorgeschlagen unter dass die beiden oben genannten Proben identisch sind, da localState kann von jeder Stelle des Blocks aus aufgerufen werden. Das folgende Beispiel zeigt jedoch, dass foo außerhalb des Blocks definiert ist, kann ein anderer Fall sein. Was meinen Sie dazu?
function foo(){
// code
}
(function(){
var localState;
function bar(){
// code
foo();
return localState;
}
})();