ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptには関数のオーバーロードがありますか?

JavaScriptには関数のオーバーロードがありますか?

青灯夜游
青灯夜游オリジナル
2022-02-23 14:58:032465ブラウズ

JavaScript には関数のオーバーロードがありません。同じ名前で異なるパラメータを持つ関数はオーバーロードと呼ばれます。同じ名前の関数が存在する場合、後の関数が前の関数を上書きするため、関数のオーバーロードは JavaScript では実装できません。

JavaScriptには関数のオーバーロードがありますか?

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript には関数のオーバーロードがありません

最初にオーバーロードの定義について説明します。同じ名前で異なるパラメーターを持つ関数はオーバーロードと呼ばれます。

つまり、プログラム中に同名の関数が存在し、パラメータの判定により同じ関数の異なる呼び出しを実現することができます。

また、JavaScript では関数のオーバーロードを実装できません。同じ名前の関数の場合、後の関数が前の関数を上書きするためです。

JS で定義された関数は関数名で識別され、定義されたパラメーターの順序に従って渡されたパラメーターと照合され、超過したものは破棄され、不足したものは未定義として扱われます。

しかし、js にはメソッド オーバーロードというオーバーロードを実装するための独自のメソッドもあり、パラメータの数を判断して関数内でメソッド オーバーロードを実装します。

たとえば、関数はパラメーターを 1 つ受け取った場合は現在のパラメーターを返し、パラメーターが 2 つあった場合は 2 つのパラメーターの合計を返し、パラメーターが 3 つあった場合は 3 つの関数の合計を返します。などなど...

function add(){
	if(arguments.length === 1){
		return arguments[0]
	} else {
		var _index = arguments.length;
		var allnum = 0;
		for (var i = 0;i<_index;i++){
			allnum = allnum + arguments[i];
		}
		return allnum
 	}
	return arguments.length
}
add(1,1,2,3,3,3,4);

JavaScriptには関数のオーバーロードがありますか?

[関連する推奨事項: JavaScript 学習チュートリアル]

以上がJavaScriptには関数のオーバーロードがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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