Ich habe vor einer Weile eine halbwegs anständige Erklärung für Schließungen auf this Website gefunden. Sie präsentieren uns mit den folgenden Werksfunktion eine Arbeits Schließung zu sehen:Javascript - warum eine Schließung mit IIFE zurück?
var car;
function carFactory(kind) {
var wheelCount, start;
wheelCount = 4;
start = function() {
console.log('started with ' + wheelCount + ' wheels.');
};
// Closure created here.
return (function() {
return {
make: kind,
wheels: wheelCount,
startEngine: start
};
}());
}
car = carFactory('Tesla');
// => Tesla
console.log(car.make);
// => started with 4 wheels.
car.startEngine();
Warum diese Person geben die Schließung als sofort beschworene Funktion Ausdruck (IIFE), die ein Objekt mit den Eigenschaften zurückgibt, die er will teilen ? Ich fühle mich wie das IIFE ist unnötig. Wenn ich das Objekt sofort zurückgeben würde, würde dies zu dem gleichen Ergebnis führen. Fehle ich etwas?
//Closure created here
return{
make: kind,
wheels: wheelCount,
startEngine: start
};
Es sieht für mich nicht notwendig, auch. – Barmar
Es wäre sinnvoller, wenn das IIFE Argumente hätte, obwohl sie auch dann nur Variablen in der umschließenden Funktion sein könnten. – Barmar