2016-04-04 4 views
0

私はChromeで次のコードを実行すると、それは完璧に動作します:デフォルトで引数をどのように削除できますか?

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

をしかし、私はノードで同じスニペットは私が得ることを実行する場合:

ReferenceError: Invalid left-hand side in assignment

...という事実にもかかわらず、私はデフォルトの両方でノードを実行したと調和パラメータ構造化代入:だから

nodejs --harmony --harmony_destructuring --harmony_default_parameters 

を、私の質問は、ノードが完全に有効な、A(これを処理するためにどのような魔法の呪文必要ありませんさ私が言うことができる限り)ES6声明?

+1

矢印機能で使用するために機能がまだ機能しているかどうかはわかりません(ハーモニーでも)。これは、非矢印関数の構文 - '(function({foo} = {}){console.log(foo);} {{foo: 'baz'}}))'を使用するとうまく動作します。私はノード 'v5.5.0'にあります。 – dvlsg

+1

それは旗の後ろだと、デフォルトでは有効になっていない理由があります: –

+0

完全な非構造サポートが中に導入されたPは[V8 4.9](http://v8project.blogspot.com/2016/01/v8-release-49.html) 。それはノード6に組み込まれることが期待されます。 – estus

答えて

0

@dvlsgが示唆したように、これは単に、これらのノードの機能の実験的な実装のバグです。

しかし、@estusが示唆しているように、Node開発者自身が示したようにhere、すぐにリリースされるNodeの新しいバージョンはこの問題を解決するだけでなく、ES6機能の大部分をロールバックしますノードに直接入ります(つまり、node --harmony_whateverはありません)。

関連する問題