2017-05-11 6 views
0

次のコードは、ほとんどのパラメータが呼び出される関数foo(a、b、c)になるのはなぜですか?引数が宣言されたパラメータよりも小さい関数呼び出し

function foo (a) { 
console.log("single parameter function") 
}; 
function foo (a, b) { 
console.log("two parameter function"); 
} 
function foo (a, b, c) { 
console.log("three parameter function"); 
} 
foo("hello", "goodbye"); 
+0

関数の宣言の順序を変更するか、何が起こるかを見てみましょうか?答えは以下の通りです –

+0

'function foo(){}'があればどうなるでしょうか?変数 'foo'が作成され、関数オブジェクトを値として割り当てました。同じ名前の宣言を複数持つことは無効ではありませんが、変数は単一の値しか持てません。変数には最後の宣言によって作成された関数オブジェクトが割り当てられます。 –

+0

[*の前に戻るにもかかわらず、2番目の関数宣言がなぜ勝つのですか?*](http://stackoverflow.com/questions/8036140/why-does-second-function-declaration-win-even-though-i -return-before-it)? – RobG

答えて

3

関数のオーバーロードはJavascriptのものではありません。関数名は一度しか定義できません。あなたは実際にはfooの3つの異なるバージョンを持っていません。あなたは1つを持っています:最後のものが宣言されています。

関連する問題