Richte meine var auf eine anonyme Funktion mit einem Parameter?
-
29-09-2019 - |
Frage
Ich baue meine erste OO JS-Bibliothek und im, ein wenig Mühe mit einem Stück hat, die wahrscheinlich ist super einfach ...
Ich habe diese:
var storageLocker = function(catalog){
if(catalog){
this.catalog = catalog;
}
//my code...
}()
i müssen in der Lage sein zu tun, was andere Bibliotheken wie jQuery tun, wo Sie ein Element auswählen kann (in meinem Fall wählen Sie ein local Artikel) und dann ist die Kette andere Funktionen zu. Ich hatte alles, was funktioniert, aber für die beste Praxis und mache es mehr erweiterbar später habe ich ihn in einer anonymen Funktion und jetzt kann ich nicht herausfinden, wie die Syntax haben:
storageLocker('localStorageItem').save({"item":"an example item saved to localStorageItem"})
aber jetzt, wenn ich das tue jetzt mit dieser Syntax gibt es diesen Fehler:
Uncaught TypeError: Property 'storageLocker' of object [object DOMWindow] is not a function
Irgendwelche Ideen?
Lösung
Nehmen Sie die ()
am Ende des Funktionskörpers.
Sie schrieb var storageLocker = function(...) { ... }()
, die eine anonyme Funktion erstellt, nennt es , und Abtretungsempfänger das Ergebnis zu storageLocker
.
Es ist äquivalent zu
function anonymous(...) { ... };
var storageLocker = anonymous();
Da die Funktion nichts zurückgibt, storageLocker
endet als undefined
und ist keine Funktion.