JSでは、すべてがオブジェクトであり、関数でさえオブジェクトです。関数名は、実際にはオブジェクトを定義する関数を指す変数です。
1。議論とは何ですか?
この関数本文の引数は非常に特別です。それらは実際には、それらが配置されている関数の組み込み配列オブジェクトです。配列[i]および.lengthを使用できます。
2。その機能は何ですか?
JS構文は過負荷をサポートしていません!ただし、引数オブジェクトを使用して、過負荷効果をシミュレートできます。
引数オブジェクト:関数オブジェクトでは、すべてのパラメーターと値配列オブジェクトを受信するために自動的に作成されます。
引数[i]:subscript iで渡されたパラメーター値を取得します
arguments.length:渡されたパラメーターの数を取得します!
過負荷:
同じ関数名と異なるパラメーターリストを持つ複数の関数をプログラムで定義できます。
発信者は、各関数のパラメーターを区別する必要はありません。
実行中、プログラムは、渡されたパラメーターの数に基づいて実行する選択を選択する関数を自動的に決定します。
例は次のとおりです。
//1。ユーザーがパラメーターを渡す場合、正方関数の合計(a){console.log(a*a);} //ユーザーが2つのパラメーターを渡す場合、sum関数sum(a、b){console.log(a+b);} sum(4); //? sum(4,5); //?上記の例では、元の意図は、同じ名前の関数合計()を異なるパラメーターに応じて異なる結果を出力することですが、合計は関数の名前であり、本質的に変数です。
2番目のものは最初のものをオーバーライドするので、上記の正しい出力の答えは次のとおりです。Nan、9。したがって、これは明らかに不可能です。
引数を使用すると、はるかに簡単になります。
次の2つの例:
// 2。 function calc(){//ユーザーがパラメーターに渡された場合、square if(arguments.length == 1){console.log(arguments [0]*arguments [0]);} else if(arguments.length == 2){//ユーザーが2つのパラメーターで通過する場合、console.log(arguments [0]+arguments [1];}; // 16Calc(4,5); // 9 /*3。ユーザーが渡された数字の数に関係なく、合計を合計*/function add(){//引数:[] //引数のすべての要素をトランザクション(var)i = 0、sum = 0; i <arguments.length; sum+= arguments [i ++]); return sum; // return.log(add(1,2,3)); //6console.log(add(1,2,3,4,5,6)); // 21これは、引数の過負荷を使用してJSの効果です。簡単な理解は、関数を再利用することです。
arguments.lengthは実際の引数によって決定されます。つまり、関数のパラメーターの数は、関数呼び出しのパラメーターの数によって決定されます。
上記は、編集者によって紹介されたJavaScriptの引数オブジェクトの関連する知識です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!