[解決済み] Javascriptにおける関数のオーバーロード - ベストプラクティス [終了しました]。
2022-03-17 05:25:57
質問
Javascriptで関数のオーバーロードをごまかすには、どのような方法がありますか?
Javascriptでは、他の言語のように関数をオーバーロードすることができないことは承知しています。
もし、2つの用途を持つ関数が必要なら
foo(x)
と
foo(x,y,z)
どのような方法がベストなのか、好ましいのか。
- そもそも異なる名前を使用する
-
のようなオプションの引数を使用します。
y = y || 'default'
- 引数の個数を指定する
- 引数の種類を確認する
- またはどのように?
解決方法は?
パラメータを使った関数のオーバーロードを行う最良の方法は、引数の長さや型をチェックしないことです。型をチェックするとコードが遅くなるだけで、配列、ヌル、オブジェクトなどの楽しみがあります。
多くの開発者がやっていることは、メソッドの最後の引数としてオブジェクトを追加することです。 このオブジェクトは何でも入れることができます。
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"});
そうすれば、メソッドの中で好きなように処理することができます。[スイッチ、if-elseなど】。]
関連
-
jQueryのコピーオブジェクトの説明
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
JavaScriptのStringに関する共通メソッド
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
JavaScriptのクロージャの説明
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
VUEグローバルフィルターの概念と留意点、基本的な使い方
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】リソースの読み込みに失敗した:Bind関数でサーバーが500(Internal Server Error)のステータスで応答した【非公開
-
[解決済み】ERROR エラーです。スイッチのname属性が指定されていないフォームコントロールの値アクセッサがない
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR