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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top