2017-11-08 9 views
2

1つのJSONオブジェクトを使用して関数に渡すか、いくつかの分離したパラメータを渡す必要がありますか?JavaScript関数を呼び出すときに、すべての値を1つのJSONオブジェクトとして渡すことをお勧めしますか?

たとえば、JavaScriptを使用してHTMLフォームを送信する場合があります。

私の推測では、20個の値がある場合、1つの大きなオブジェクトを20個の異なるパラメータよりも扱いやすくなります。また、1つのパラメータを持つときに関数を維持するほうが簡単だと思いますが、静的に型指定された言語を使用している場合は、関数内のオブジェクトのプロパティを検証する必要があります。 JavaScriptは静的に型指定された言語ではないので、私は分離されたパラメータを使用することの利点を見ません(関数の各パラメータを手動で検証する必要があります)。

両方の方法の長所と短所は何ですか?推奨方法はありますか?

ありがとうございました。

+1

言語が7つ以上ある場合は、リファクタリングする必要があります。パラメータが多すぎるとコードの匂いになります。詳細については、Code Complete、2nd editionの178ページを参照してください。 – Amy

+2

[JSONオブジェクトのようなものはありません](http://benalman.com/news/2010/03/theres-no-suchthing-as-a-json/) – Quentin

+0

ああ...私はすでに質問が保留になったときに私の答えを書いてください。しかしここにあります:はい、パラメータとして単一のオブジェクトを渡すことは大丈夫です:https://gist.github.com/danguilherme/ada10c3be026450a4cb24d3a85dd8ac2 – danguilherme

答えて

1

私が言っている明確な答えはありません。あなたが達成したいことにかかっています。定義されていない量のフォームフィールドのセットに対して、私はそれを1つのオブジェクトとして渡します。通常、私はオブジェクトとして、「何かのためのオプションのオブジェクト」など、「一緒に属している」ものを渡します。

また、渡されたオブジェクトの特定の部分だけが必要な場合は、es6を使用して「チェリーピック」することもできます。

function({ key }) { 
    return key; 
} 

function(obj) { 
    return obj.key; 
} 
1

と同じであり、我々は1つのJSONオブジェクトを使用して関数に渡すか、我々はいくつかの分離パラメータを渡す必要があるでしょうか?

まず第一に、それはJSONオブジェクトはありませんが、簡単なJavaScriptのオブジェクト、there's no such a thing "JSON Object"

そして、あなたの質問に答えるために、よくはい、それはのparamオブジェクトを渡す方が良いでしょうだけではなく、個別にすべてのparamsを渡しますたとえこれらのパラメータがargumentsというキーワードの配列として扱われても、複数のものがある場合には、

いくつかのJSフレームワークは、optionsオブジェクトとして使用されているモジュールの場合など、optionsオブジェクトと呼びます。

関連する問題