2016-04-04 51 views
0

當我運行在Chrome下面的代碼片段,它運行完美:如何解構默認的參數?

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

但是,如果我運行在同一節點片段,我得到一個:

ReferenceError: Invalid left-hand side in assignment

...儘管我RAN節點與缺省值和解構和諧參數:

nodejs --harmony --harmony_destructuring --harmony_default_parameters 

所以,我的問題是,什麼魔法咒語確實節點需要處理這個(完全有效的,一據我所知,ES6的聲明?

+1

我不確定該功能是否可以使用箭頭功能(即使是和諧)。當使用非箭頭函數語法時,它工作得很好 - '(function({foo} = {}){console.log(foo);}({foo:'baz'}));'。順便說一句,我在節點'v5.5.0'上。 – dvlsg

+1

有一個原因,它背後的標誌,並沒有默認啓用:P –

+0

全面解構支持引入[V8 4.9](http://v8project.blogspot.com/2016/01/v8-release-49.html) 。預計將被併入節點6。 – estus

回答

0

正如@dvlsg建議的那樣,這只是這些Node功能的實驗性實現中的一個錯誤。

然而,正如@estus建議的那樣,並且正如節點開發者自己here所指出的那樣,即將發佈的新版本的Node不僅解決了這個問題,而且還將大量的ES6功能直接進入節點(即不再有node --harmony_whatever)。