JavaScript不支持函數重載

在學習JavaScript的過程中發現一個很有趣的問題:初學者剛開始學習的時候覺得Javascript和Java很相近,除了Javascript是弱類型語言外;但是有趣的是Javascript並不支持函數的重載,如果像Java那樣寫出函數重載Javascript並不會報錯,這就是有趣的地方了---不支持但又不算錯誤。那麼對於同名的函數,當調用時只是簡單的調用最後一個函數,就像是最後的一個函數把前面的同名函數全部覆蓋掉了。可以看一個例子:
	function test(a, b, c){
		return a+b+c;
	}


	function test(a, b){
		return a+b;
	}

	function test(){
		return "Hello world";
	}

	window.alert(test(1,2,3));
	window.alert(test(1,2));
	window.alert(test());

三個對函數的調用都是調用了最後一個test()函數,彈出“Hello world”。。。
其實我覺得本來Javascript的函數都是支持可變參數個數,而且又是弱類型語言,從這兩點來看是不會支持函數重載的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章