3

ただのスタイルの質問。

人々は変数を次のような関数に渡すことを好みますか

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

or 

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

2つの間にパフォーマンスの問題はありますか?

なんらかの方法で関数を標準化することにしているので、この質問をしています。

4

3 に答える 3

3

ほんの数個のパラメーターである場合は、読みやすくするために最初のパラメーターを使用します (ドキュメント)。

多くのパラメータがある場合は、2 番目のパラメータ (オプション オブジェクトなど) を使用します。

両者に大きな性能差はないと思います。

于 2012-11-14T08:24:35.507 に答える
2

どのスタイルを使用するかについては、完全に状況に応じたものだと思います。最初の方法が読みやすさのために最も好ましく、最良であると誰もが主張することはないと思います。そして、ほとんどすべての機能にこれを推奨します。

JSONデータを処理したり、Backboneでモデルなどを使用したりする場合は、2番目のスタイルのようなプロパティを追加することを好みます。

パフォーマンスの面では、最初のスタイルの方が高速です。

関数をクリーンアップして、ここで表示できるテストに追加しました。

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

于 2012-11-14T08:31:52.580 に答える
1

ここでは、パフォーマンスについて心配する必要はないと思います。多少の違いがあっても、通常のスクリプトにとって重要ではありません。

コーディングスタイルに関しては、関数 api がどのように見えるべきかを確信している限り、最初のバージョン (固定数の引数を渡す) を使用することについてすべてです (また、他の人が何が何であるかを理解するのが簡単になります)。の特定の引数)。

関数がプラグインへのエントリ ポイントのように機能すると思われる場合は、2 番目のアプローチを使用します。オブジェクトでその関数に渡される可能性のあるオプションを追加/削除する方がはるかに簡単です。したがって、API は人々にとってそれほど変化しません。すでにスクリプトを使用している。

于 2012-11-14T08:29:44.553 に答える