2016-04-04 13 views
0

Wenn ich den folgenden Ausschnitt in Chrome laufen, läuft es perfekt:Wie kann ich ein Argument mit einer Standardstruktur destrukturieren?

(({foo}={}) => {console.log(foo);})({foo: 'baz'}); 
// logs "baz" 

Wenn ich jedoch, dass Schnipsel in Knoten laufen ein erhalte ich:

ReferenceError: Invalid left-hand side in assignment

... trotz der Tatsache, dass ich lief Knoten sowohl mit dem Standard und Destrukturierung Harmonie Parameter:

nodejs --harmony --harmony_destructuring --harmony_default_parameters 

Also, meine Frage ist, welche magische Beschwörung Knoten benötigt diese (perfekt gültig zu verarbeiten, ein soweit ich das beurteilen kann) ES6 Aussage?

+1

Ich bin mir nicht sicher, ob die Funktion noch funktioniert (sogar in Harmonie) für die Verwendung mit Pfeilfunktionen. Es funktioniert gut, wenn Sie die Nicht-Pfeil-Funktionssyntax verwenden - '(function ({foo} = {}) {console.log (foo);} ({foo: 'baz'}));'. Ich bin übrigens auf Knoten 'v5.5.0'. – dvlsg

+1

Es gibt einen Grund, warum es hinter einem Flag steht und nicht standardmäßig aktiviert ist: P –

+0

Vollständige Destrukturierungsunterstützung wird in [V8 4.9] eingeführt (http://v8project.blogspot.com/2016/01/v8-release-49.html) . Es wird erwartet, dass es in Knoten 6 integriert wird. – estus

Antwort

0

Wie @dvlsg vorgeschlagen, ist dies einfach ein Fehler in der experimentellen Implementierung dieser Knoten-Features.

Wie von @estus vorgeschlagen, und wie von den Node-Entwicklern selbst here angezeigt, wird die bald neue Version von Node nicht nur dieses Problem beheben, sondern auch den Großteil der ES6-Funktionalität übernehmen direkt in den Knoten (dh nicht mehr node --harmony_whatever).

Verwandte Themen