2016-06-28 51 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