言語設計上のエラーにより、引数が配列として扱われる可能性があります。
関数ゼロ () {
console.log(引数[0]);
}
もあります
関数ゼロ () {
for(var i=0;i
console.log(arguments[i]);
}
}
JavaScript が Javasc であるという事実を利用します
ここでの引数変数は、実際のパラメータに配列のようなインターフェイスを提供します。ここでは引数のパラメーターが可変であるため、この興味深い機能を使用して、オーバーロードなどの興味深いことを行うことができます。
JavaScript のリロード
stackvoerflow のオーバーロードに関する質問があるので、最初の答えがあります
if (友人のタイプ === "未定義") {
} else {
}
もう 1 つの答えは
switch (arguments.length) {
ケース 0:
//おそらくエラー
休憩;
ケース 1:
//何かをする
休憩;
ケース 2:
デフォルト: // より多くのパラメータの場合を処理するためにフォールスルーします
//何か他のことをする
休憩;
}
この方法は実際には見栄えがよくありませんが、私たちの関数は最終的には次のようになりますか?
関数 zero1 (){
console.log('引数 1')
};
function zero2 (){
console.log('引数 2')
};
関数ゼロ () {
if(arguments.length == 1){
Zero1();
} else{
Zero2();
}
}
スイッチ…ケースを変えても見た目が全然良くないです。
JavaScript の引数は配列ではありません
arguments は、ご覧のように常に配列であるとは限りません。場合によっては配列でない場合もあります。
関数 hello(){
console.log(引数の種類);
}
ここでの引数の型はオブジェクトですが、配列の型もオブジェクトですが、配列
に変換できます。
var args = Array.prototype.slice.call(arguments);
しかし、これは、これが配列ではなく、長さという配列の唯一の属性しか持たないことも示しています。さらに、
arguments.callee
現在実行中の関数への参照。
arguments.caller
現在実行中の関数を呼び出した関数への参照。
arguments.length
関数に渡される引数の数への参照。