2016-04-04 8 views

Antwort

3

Der Code aus dem Buch ist ein Modullader, mit dem Sie Bibliotheksfunktionen in einem definierten Variablennamespace speichern können. Die library-Funktion nimmt ein Modul (das ein Objekt sein muss) und prüft, ob es eine init-Eigenschaft hat, ruft die init-Methode auf (um alle erforderlichen Teile der Bibliothek zu initialisieren) und gibt dann das initialisierte Modul zurück an den Anrufer.

Der zweite Teil des Codes, von dem Sie glauben, dass er verwechselt wird, verwendet eine anonyme Funktion, um ein Dummy-Modul an die Bibliotheksfunktion zu übergeben. Der Code:

var myLibrary = library(function() { 
    return { 
     init: function() { 
     // module implementation 
     } 
    }; 
}()); 

ist die gleiche wie wie etwas mit:

var someModule = { 
    init : function() { 
    // module implementation 
    } 
} 
var myLibrary = library(someModule) 

Hier passieren wir die someModule Objekt-Bibliothek(), die die gleiche wie was geschieht im Stand der Code-Schnipsel ist jedoch Im vorherigen Code-Block führen wir eine anonyme Funktion aus, die das Modul-Objekt kapselt, so dass wir keine zusätzlichen temporären lokalen Variablen erstellen müssen.

Wenn Sie noch etwas Klärung benötigen, fragen Sie bitte

+0

Was macht diese Codezeile? $ (function() { ....... }); – user3516328

+1

Es handelt sich um einen Codeblock, der ausgeführt wird, sobald dom bereit ist. Sobald die Bibliotheksfunktion aufgerufen wird und dom bereit ist, wird der Block ausgeführt – Alex