<div class="codetitle"> <span><a style="CURSOR: pointer" data="88238" class="copybut" id="copybut88238" onclick="doCopy('code88238')"><u>コードをコピー</u></a></span> コードは次のとおりです。</div> <div class="codebody" id="code88238"> <br><!DOCTYPE html> <br><html> ; <br><head> <br><meta charset="UTF-8"> <br><script type="text/javascript" > <br>/* <br>*1.js 関数のオーバーロードはありません <br>2. js 関数を定義するときの仮パラメータの数は、実行時に渡される実際のパラメータの数と異なる場合があります。 <br>3.js が実行されると、実際のパラメーターは引数のグループにカプセル化されます <br><br>*/ <br>function add(a){ <br>return a 10>} var add=new Function("a","return a 10"); <br>//alert(add(5)); <br>function add(num1,num2){ <br>return num1 num2; 🎜 >} <br>var add=new Function("num1","num2","return num1 num2"); <br>alert(add(5,6)); <br>alert(add(5)) ; //そのような呼び出しの結果は NaN です: 2 つのパラメーターを持つ関数は後で呼び出すときに定義されるためです<br>//つまり、var 宣言があっても、JavaScript で変数名が同じである限り、後の定義はそれを上書きします<br>//前に定義された ======= から得られる結論は、js には関数のオーバーロードがないということです。 <br><br>//------引数オブジェクトを使用してメソッドのオーバーロードをシミュレート----- <br>//-さまざまなパラメーターの数値に基づいて、最大 25 個のパラメータで異なるコード ブロックを呼び出します。 <br>function addNum(){ <br>alert(arguments.length); <br>for(var x=0;x<arguments.length>alert (arguments[x]); <br>//このオブジェクトは関数本体内にのみ存在できます<br>} <br>if(arguments.length==1){ <br>return argument[0] }else if(arguments.length==2){ <br>return argument[0] argument[1]; <br>}else{ <br>return "パラメータ エラー、確認してください"; <br>} <br>var value=addNum(10,20,30); <br>alert("関数の戻り値: " value);//結果の値は次のとおりです: "パラメータ エラー、確認してください" <br>//実際、異なる関数を呼び出して異なる値を返すのはパラメーターの判断によって行われます。これは Java のオーバーロードに似ています<br>//しかし、本質的には、JS ではオーバーロードがない場合、同じ変数が異なる場所に表示されます。割り当てられると、必然的に以前に宣言された変数が上書きされます。もちろん、<br>//これには、関数内の量と関数の外の変数の間の関係は除外されます。 <br></script> <br><body> <br></html></arguments.length> </div>