2016-02-20 13 views
7

znajdę ten zapis wszędzie w WebPACK generowane bibliotekami, ale ja tego nie rozumiem:Co oznacza ta składnia javascript? (0, _parseKey2.default) (coś)

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

co robi (0, _parseKey2.default) podpórek? Nie pamiętam, żeby widziałem, jak te komy dzielą wyrażenia między nawiasami w innym miejscu niż parametry funkcji, więc może po prostu brakuje mi czegoś prostego.

Dzięki za pomoc.

+2

To [operatora przecinek] (https://developer.mozilla.org/en/docs/Web/JavaScript/Referencje/Operatory/Comma_Operator). Nie ma jednak żadnej wskazówki, dlaczego webpack generuje takie rzeczy, ale ja też to widziałem. –

Odpowiedz

17

To daje _parseKey2.default poprawne this (lub raczej, nie ma wcale, wcale nie jest to this), to jest wywołanie go jako zwykłej funkcji, a nie metody. Rozważyć:

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 

Wyrażenie przecinek bardziej zwięzły sposób, w tym celu:

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

Więcej w [tym artykule] (http://www.2ality.com/2015/12/references.html). –