2016-02-20 8 views
7

Ich finde diese Notation überall in Webpack Libs erzeugt, aber ich verstehe es nicht:Was bedeutet diese Javascript-Syntax? (0, _parseKey2.default) (etwas)

var a = (0, _parseKey2.default)(something) 

Was tut die (0, _parseKey2.default) steht für? Ich kann mich nicht erinnern, diese Koma-getrennten Ausdrücke zwischen Klammern an anderen Funktionsparametern gesehen zu haben, also vermisse ich vielleicht etwas Einfaches.

Danke für Ihre Hilfe.

+2

Dies ist der [Komma-Operator] (https://developer.mozilla.org/en/docs/Web/JavaScript/Referenz/Operatoren/Komma_Operator). Keine Ahnung, warum Webpack so etwas erzeugt, aber das habe ich auch gesehen. –

Antwort

17

Dies ist _parseKey2.default die richtige this (oder vielmehr nicht this überhaupt) zu geben, ist, dass es wie eine normale Funktion aufzurufen, keine Methode. Bedenken Sie:

var p = { 
    f : function() { 
     console.log(this) 
    }, 
    x : "foo" 
}; 

p.f();  // { f: ... x: foo } 
(p.f)(); // { f: ... x: foo } 
(0, p.f)(); // implicit global this 

Das Komma Ausdruck ist ein prägnanter Weise, dies zu tun:

var unbound = p.f; 
unbound(); 
+6

Mehr in [diesem Artikel] (http://www.2ality.com/2015/12/references.html). –