ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript_javascript スキルにおける引数とオーバーロードの概要

Javascript_javascript スキルにおける引数とオーバーロードの概要

WBOY
WBOYオリジナル
2016-05-16 16:09:131263ブラウズ

言語設計上のエラーにより、引数が配列として扱われる可能性があります。

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

関数ゼロ () {
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

関数に渡される引数の数への参照。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。