2016-06-28 41 views
2

enter image description herees6-箭頭功能 - 沒有重複的命名參數

我不能左右的箭頭功能的最後辦法很好的理解有:

沒有命名重複arguments-箭頭功能不能有重複的 命名參數是嚴格模式或非嚴格模式,與nonarrow 函數不同,只有在嚴格的 模式下才能有重複的命名參數。

以上段落摘自Nicholas C. Zakas在'Function'一章中寫的Book「Understanding ECMAScript 6」一書。

根據上面的描述,我知道箭頭函數沒有像其他函數那樣的參數。

我可以很好地理解半句前的句子,但是另一半是由「相對於......」開始的。

這是什麼意思「非函數函數不能在嚴格模式下重複命名參數」。

事實上,在嚴格模式下的函數也有爭議。我不知道作者的意思。

+0

我實際上被'參數'和'命名參數'弄糊塗了。我應該仔細閱讀以避免這種誤解。 – dylan

+0

這最後一個要點確實令人困惑。無論如何你都不應該使用重複的命名參數。此外,在這種情況下,我傾向於使用術語「參數」而不是「參數」。 – ftor

+0

這真的應該讀取[*命名參數*而不是*命名參數*](http://stackoverflow.com/q/156767/1048572)。 – Bergi

回答

3

這意味着,以下是有效的JavaScript:

function bar(foo, foo){} 

這是沒有,不過,使用嚴格模式時:

'use strict'; 
function bar(foo, foo){} 
// SyntaxError: duplicate formal argument foo 

隨着箭頭的功能,重複的命名參數總是不分嚴格或非嚴格模式,無效。

(foo, foo) => {} 
// SyntaxError: duplicate argument names not allowed in this context 

根據上面的描述中,我知道,箭頭功能沒有參數,像其他的功能。

不確定您是否正確理解這一點。箭頭功能可以有參數,它只是沒有arguments

+0

哇,太棒了,謝謝 – dylan

+0

是的,我知道你的意思。我被'參數'和'命名參數'混淆了,這實際上意味着參數。 – dylan