3

只是风格问题。

你们是否喜欢将变量传递给像这样的函数

function (a, b) {
    return a + b;
}(1,2);

or 

function (args){
    return args.a + args.b;
}({a:1;b:2});

?

两者之间是否存在性能问题?

我决定以某种方式标准化我的功能,因此我在问这个问题。

4

3 回答 3

3

如果只是几个参数,我会使用第一个以获得更好的可读性(文档)。

如果有很多参数,我会使用第二个(例如选项对象)。

我不认为两者之间有任何主要的性能差异。

于 2012-11-14T08:24:35.507 回答
2

我发现使用哪种风格完全取决于情境。我认为没有人会争辩说第一种方法是最可取的,并且可读性最好,并且会为大多数功能推荐这种方法。

在处理 JSON 数据和使用 Backbone 中的模型之类的东西时,我更喜欢添加第二种风格的属性。

在性能方面,第一种风格更快。

我清理了您的函数并将它们添加到您可以在此处查看的测试中:

http://jsperf.com/declared-args-vs-lookup

于 2012-11-14T08:31:52.580 回答
1

我认为您不必担心这里的性能。即使有一些差异,它们对于常规脚本也不是很重要。

至于编码风格,只要您确定函数 api 应该是什么样子,我都会使用第一个版本(传递固定数量的参数)(其他人也更容易了解什么是某些论据)。

如果假设该函数充当插件的入口点,请使用第二种方法 - 添加/减去可能在对象中传递给该函数的选项会容易得多,因此 API 不会对人们改变太多已经在使用脚本。

于 2012-11-14T08:29:44.553 回答