Javascript での関数オーバーロード - ベストプラクティス [closed] 質問する

Javascript での関数オーバーロード - ベストプラクティス [closed] 質問する

Javascript で関数オーバーロードを偽装する最良の方法は何ですか?

他の言語のように JavaScript で関数をオーバーロードすることはできないことはわかっています。2 つの用途を持つ関数が必要でfoo(x)foo(x,y,z)どの方法が最良または推奨されるか:

  1. そもそも異なる名前を使う
  2. オプション引数を使用するy = y || 'default'
  3. 引数の数を使用する
  4. 引数の種類のチェック
  5. あるいはどうやって?

ベストアンサー1

パラメータを使用して関数をオーバーロードする最善の方法は、引数の長さや型をチェックしないことです。型をチェックするとコードが遅くなるだけで、配列、null、オブジェクトなどの問題が生じます。

ほとんどの開発者は、メソッドの最後の引数としてオブジェクトを追加します。このオブジェクトには何でも格納できます。

function foo(a, b, opts) {
  // ...
  if (opts['test']) { } //if test param exists, do something.. 
}


foo(1, 2, {"method":"add"});
foo(3, 4, {"test":"equals", "bar":"tree"});

その後、メソッド内で好きなように処理できます。[Switch、if-else など]

おすすめ記事