2017-05-09 54 views
1

括號我是新來的JavaScript和無法理解簡單的事情 - 就是ESCMAScript 6箭頭功能 - 圍繞參數

...(x) => { return x*2} 

...x => { return x*2} //(just for example, may not work) 

之間的差異有人能解釋或提供鏈接描述?

+1

當有兩個或更多輸入參數時,只需要'x'周圍的括號。只有一個(如你在這裏所示),這兩個陳述是相同的。 –

+0

一個有一個參數,一個沒有;要麼是合法的。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions請注意,在這裏使用'... ...'可能會引起誤解,具體取決於它們代表的內容。他們是ES6中的一個東西:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator –

+0

參見http://stackoverflow.com/questions/41085189/using-用可選圓括號表示的某些點下劃線可變與箭頭函數在es6打字稿中。 – estus

回答

4

只有在有兩個或更多輸入參數時,才需要輸入參數的圓括號(本例中爲x)。只有一個(如你在這裏所示),這兩個陳述是相同的。

(x) => { return x * 2; }相同x => { return x * 2; }

但是,

(x, y) => { return x * y; }

大約需要輸入參數括號。

請參閱this所有的血淋淋的細節!

+0

值得一提的是,如果第一個arg具有默認值,並且/或者使用解構,則還需要parens。 – loganfsmyth

+0

@loganfsmyth是的,但包含在鏈接中的內容(「血腥」細節的一部分)。 –

+0

總的來說,我猜測我對於只有當有兩個或更多輸入參數時才需要的語句的絕對性感到驚訝,因爲這是不正確的,還有其他的情況。 – loganfsmyth