将命名参数传递给Javascript函数

将命名参数传递给Javascript函数,javascript,function,parameter-passing,named,Javascript,Function,Parameter Passing,Named,使用以下命令调用Javascript函数 someFunction(1, true, 'foo'); 如果不熟悉函数,则不太清楚 我看到并使用了插入注释的样式来命名参数: someFunction(/*itemsToAdd*/1, /*displayLabel*/ true, /*labelText*/ 'foo'); 但当它超过3个或更多参数时,最好在JSON对象中传递参数,使其顺序独立,并允许在被调用函数中提供默认值 someFunction({'itemsToAdd':1, 'labe

使用以下命令调用Javascript函数

someFunction(1, true, 'foo');
如果不熟悉函数,则不太清楚

我看到并使用了插入注释的样式来命名参数:

someFunction(/*itemsToAdd*/1, /*displayLabel*/ true, /*labelText*/ 'foo');
但当它超过3个或更多参数时,最好在JSON对象中传递参数,使其顺序独立,并允许在被调用函数中提供默认值

someFunction({'itemsToAdd':1, 'labelText':'foo', 'displayLabel':true});

我的问题是,;行业的一般做法是什么,不使用这些方法是否有压倒一切的理由。例如,Lint不喜欢第二种方法。

我个人只需grep函数名并查看与之相关的注释。维护良好的代码将在函数上方有一条注释,解释参数是什么以及它对参数的作用,如果需要解释为什么参数是这样的,您可以将注释粘贴到函数调用上方


使用JSON传递参数似乎是一种增加不必要的解析开销并可能使维护人员感到困惑的方法-只需添加更多字段并将空值传递到需要默认值的字段,您可以解释为什么在调用注释中传递空值,而不是让它们不出现在JSON中。

如果您使用类似于Coffeescript的具有解构赋值的东西,最后一种样式会非常方便。解决了注释样式的问题。第二个似乎更常见。他只是错误地调用了javascript对象JSON,实际上没有涉及JSON或JSON解析。Esailija,谢谢你的回复。我认为JSON是用来创建JS对象的符号。我的第三个示例不是JSON吗?我现在就用谷歌搜索,不过一个解释可能对其他读者有用。谢谢。我同意注释在任何情况下都是必要的,我只是希望在编写代码时避免不断地来回检查参数的顺序和含义。特别是当函数位于另一个模块/文件中时。第三种方法(“JSON”的东西)似乎更容易记住,也更容易出错。编写代码更快,阅读也更容易,因此bug检测更容易。JavaScript似乎运行在70%的机器代码上,所以在大多数情况下解析开销不会很明显,是吗?