ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript オブジェクト指向のオーバーロード_js オブジェクト指向

Javascript オブジェクト指向のオーバーロード_js オブジェクト指向

WBOY
WBOYオリジナル
2016-05-16 18:28:111621ブラウズ

前のセクションでは、JavaScript オブジェクト指向名前空間JavaScript オブジェクト指向 JavaScript クラス、および JavaScript オブジェクト指向のプライベート メンバーとパブリック メンバー について説明しました。まず上を読んでから、以下を読み続けてください。


次のように定義すると:

コードをコピーします コードは次のとおりです:

function getDate(){....}
function getDate(date){....}

その後、後者のメソッドは以前のものですが、エラーは報告されません。

しかし、jQuery を使用したことがある場合は、実際にオーバーロードを実装できます。たとえば、$("#btn").val() は ID を持つボタンを取得することを理解しているでしょう。 "btn" 値、$("#btn").val("Click Me") は ID が "btn" のボタンに値を割り当てます。


では、JavaScript はどのように実装されるのでしょうか (正確には「シミュレーション」と呼ぶべきです)。
答えは簡単です。引数
引数は JavaScript の組み込みオブジェクトであり、呼び出し元によって渡される実際のパラメーターが含まれますが、呼び出し時に関数宣言で定義されたパラメーター リストに限定されません。 、これは配列と同じです。
当面は「配列」として理解しましょう。配列の長さとその要素の型に基づいてさまざまな実装を選択し、それによってオーバーロードをシミュレートします。
詳細については、次の例を参照してください:

コードをコピー コードは次のとおりです:

function getDate(){
if(arguments.length==0){
var date=new Date().toLocaleDateString();
return "パラメータが入力されていません。 time:" date;
}

if(arguments.length==1){
if(arguments[0].constructor ==Date){
return "入力したパラメータは Date 型です。現在時刻は次のとおりです: " argument[0].toDateString();
}
if(arguments[0].constructor ==String){
return "入力したパラメータは次のとおりですString 型で、時刻は次のようになります: " argument[0];
}
}

}

したがって、次のように呼び出すことができます:
コードをコピー コードは次のとおりです:

getDate()
getDate(new Date( ))
getDate("Monday")

これにより JavaScript のオーバーロードが実現しますが、パラメーターが多すぎると、この "実装" があまりにも不本意であることがわかりました。 if{ を使用するとコードが複雑になります。したがって、JavaScript でこのようなオーバーロードを使用することはお勧めしません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。