javascript_javascript のヒントの引数パラメータを使用してメソッドのオーバーロードを偽装する

WBOY
リリース: 2016-05-16 16:34:41
オリジナル
1438 人が閲覧しました

多くの高級オブジェクト指向言語には、メソッドのオーバーロードがあります。また、JavaScript にはメソッドのオーバーロードという概念がありません。ただし、arguments パラメーターを使用して、それを関数

のオーバーロードとして偽装することができます。

シミュレーションする前にコードを見てみましょう:

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

//表面上で仮パラメータを宣言しない関数
関数 fun() {
alert("サンプルコード");
}
fun("Xiao Ming", 100, true);//実際のパラメータを 3 つ書きました

結果から、関数宣言時に仮パラメータを定義しなくても、メソッド呼び出し時に実パラメータを記述できることがわかります。 (実際には、仮パラメータはプログラマが関数を呼び出すときに確認できるように書かれています)

コード内の実際のパラメータを取得できますか?答えは「はい」です。コードを参照してください:

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

//表面上で仮パラメータを宣言しない関数
関数 fun() {
alert(arguments[0]);//最初の実パラメータの値を取得します。
alert(arguments[1]);//2 番目の実パラメータの値を取得します。
alert(arguments[2]);//3 番目の実パラメータの値を取得します。
alert(arguments.length);//実際のパラメータ数を取得します。
alert("サンプルコード");
}
fun("Xiao Ming", 100, true);//実際のパラメータを 3 つ書きました

コードを通して、引数 (内部プロパティ) 自体が配列であり、その機能がメソッドの実際のパラメーターを格納することであることがわかります。

上記の知識ポイントにより、シミュレーション方法をオーバーロードするためのアイデアが得られます。実際のパラメータの数に基づいて判断して、さまざまなロジックコードを実行できます。簡単なコードは次のとおりです:

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

関数 fun() {
if (arguments.length == 0) {
alert("実際のパラメータなしでコードを実行");
}
else if(arguments.length==1)
{
alert("実際のパラメータで渡されたコードを実行します");
}
else if(arguments.length==2)
{
alert("2 つの実際のパラメータで渡されたコードを実行します");
}
}
楽しい();
fun("シャオミン");
fun("シャオミン", "シャオファ");
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート