多くのオブジェクト指向の高レベル言語では、メソッドの過負荷があります。 JavaScriptにはメソッドオーバーロードの概念がありません。ただし、引数パラメーターを使用して関数の過負荷を偽装することができます
シミュレーションの前に、コードを見てみましょう。
コードコピーは次のとおりです。
//表面に正式なパラメーターを宣言する機能はありません
function fun(){
アラート( "サンプルコード");
}
Fun( "Xiao Ming"、100、true); // 3つの実際のパラメーターを自分で書きました
結果を通して、関数を宣言するときに正式なパラメーターを定義しなくても、メソッドを呼び出すときに実際のパラメーターを記述できることがわかります。 (実際、機能を呼び出すためにプログラマーに書くときに正式なパラメーターが読まれます)
コードで実際のパラメーターを取得できますか?答えはイエスです:コードを参照してください:
コードコピーは次のとおりです。
//表面に正式なパラメーターを宣言する機能はありません
function fun(){
アラート(引数[0]); //最初の実際のパラメーターの値を取得します。
アラート(引数[1]); // 2番目の実際のパラメーターの値を取得します。
アラート(引数[2]); // 3番目の実際のパラメーターの値を取得します。
alert(arguments.length); //実際のパラメーターの数を取得します。
アラート( "サンプルコード");
}
Fun( "Xiao Ming"、100、true); // 3つの実際のパラメーターを自分で書きました
コードを通じて、引数(内部プロパティ)はそれ自体が配列であり、その機能はメソッドの実際のパラメーターを保存することであることがわかります。
上記の知識ポイントを使用すると、シミュレーション方法をリロードするためのアイデアがあります。異なる論理コードを実行するために、実際のパラメーターの数に基づいて判断を下すことができます。簡単なコードは次のとおりです。
コードコピーは次のとおりです。
function fun(){
if(arguments.length == 0){
alert( "実際のパラメーターなしでコードを実行する");
}
else if(arguments.length == 1)
{
alert( "実際のパラメーターで渡されるコードを実行する");
}
else if(arguments.length == 2)
{
alert( "2つの実際のパラメーターで渡されるコードを実行する");
}
}
楽しい();
Fun( "Xiao Ming");
Fun( "Xiao Ming"、 "Xiao Hua");