ホームページ > ウェブフロントエンド > jsチュートリアル > Javascriptの基礎 関数「オーバーロード」詳細入門_基礎知識

Javascriptの基礎 関数「オーバーロード」詳細入門_基礎知識

WBOY
リリース: 2016-05-16 17:18:40
オリジナル
1000 人が閲覧しました

Javascript には他のプログラミング言語のような関数シグネチャがありません (関数シグネチャとは何ですか? 簡単に言うと、関数が受け入れるパラメータの型とパラメータの数を指します。戻り値の型も含めるべきだと考える人もいます)具体的なコンセプトはオンラインで確認できます。

JavaScript では、他の言語のように、同じメソッド名と異なる数のパラメーターを使用してオーバーロードを実装することはできません。信じられない場合は、次のことを試してみてください。

コードをコピー コードは次のとおりです。
function show(){
alert ("1 ");
}
function show(num1){
alert(num1);
}

window.onload=function(){
Show( );
show(2);
}

ブレークポイントのデバッグでは、パラメーターのない show メソッドは実行されず、show(num1) メソッドによって上書きされます。

つまり、「オーバーロード」は Javascript では実装できないのでしょうか?答えは「はい」です、それは単なる別の方法です。はい、引数を使用するだけです。

では、引数とは何でしょうか?これは JS の特別な属性であり、配列のような添字インデックスを通じてパラメーターの値を取得し (配列ではありません)、長さを通じてパラメーターの数を取得できます。

function showParamsCount(){
アラート("parameters Number: " argument.length);//出力: パラメーターの数: 4
alert("添え字インデックス 3 のパラメーター:" argument[3]);//出力: 添え字インデックス 3 のパラメーター :Hello
}

} window.onload=function(){
showParamsCount("Hello",4,5,"Hello");
}


もう 1 つ知っておくべきことは、JS の関数の名前付きパラメーターは必要ないため、呼び出し時に渡されるパラメーターの数を知りたい場合は、引数を介してパラメーターを取得する必要があることです。

以下は単純なメソッドのオーバーロードです:

function showMessage(){
if (arguments.length==1){
alter(arguments[0]); ; showMessage("Hi!");
showMessage ("Zhang San","Hi your Sister");
}



このようにして、JS のオーバーロードが実現されます。

『Advanced Programming in JS』という本を読んでいると、引数の値が対応する名前付きパラメータの値と常に同期していることがわかりました。これまでこの問題に気付かなかったのです。





コードをコピー

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


function showMessage(name,msg){
argument[1]="msg の値を変更できます";
alert(name "Say:" msg);//出力: Zhang San Say: msg
}

Window.onload=function(){
showMessage("Zhang San","Hi your Sister"); の値を変更できます。 >
これで、JS の「オーバーロード」に関する基本的な知識はすべて終わりました
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート