1

通常、私のコードベースが大きくなるにつれて、関数はより多くの引数を受け取り、維持するのが少し雑になります。そのため、通常は次のようなものにデフォルト設定します:

f = function(args){return args.v + 1;}

f({"v":2});

よりきれいに見えますが、大丈夫ですか?なんでみんなやってないの?

4

3 に答える 3

5

通常、関数があまりにも多くのパラメーターを受け取る場合、おそらくやりすぎです。より小さな関数/オブジェクトにリファクタリングすることを検討する必要があります。

ボブおじさんは、彼の著書「Clean Code」でパラメーターが非常に少ない関数を提案しており、私も同意します。多くのパラメーターがある場合、またはオブジェクトまたは配列を渡す場合、コードを読むのが難しくなります。関数の本体を読み取らずにオブジェクトを渡す場合、関数がすべてのパラメーターで何をするのか、またはパラメーターとして何を期待しているのかを推測することはできません。

于 2012-06-20T18:58:59.443 に答える
1

「見た目はずっときれいですが、大丈夫ですか?」

はい。

「なぜ誰もがこれをしないのですか?」

でもそうではありませんか?これは、Javascriptで最も一般的な「多くのパラメーター」の状況であるオプションの受け渡しの標準的な方法です。Javascriptで1回限りのオブジェクトを作成するオーバーヘッドがないため、2つ以上のパラメーターがある場合は一般的な方法です。

于 2012-06-20T18:58:02.423 に答える
0

それは問題ありません-変数として渡すオブジェクトの種類を適切なレベルで制御し、必要に応じてこれらの値を検証する限り(「false」/ null /未定義の型の問題を考えて)、はい、これは良いことです練習。また、メンテナンスがはるかに簡単です。

于 2012-06-20T19:03:55.683 に答える