#javascript

JavaScriptにオーバーロードはない

javaをやってからJavaScriptにかえると、なかなかなれませんね。

例えばJavaではオーバーロードができるが、JavaScriptには通用しない。

すごく簡単に言うと、オーバーロードは多重定義の意味で、同じメソッド名で違う型、数のパラメータがある時、それぞれ一つのメソッドとして認められる。 一方、JavaScriptでは後勝ちです。先に定義したものが無効になります。

function func(param) {
  alert(param);
}

function func() {
  alert(1);
};

func('test');
func();

同じfuncの名前で作られた関数で、一個目はparamというパラメータがついてる。 二番目はパラメータがない。すると結果は: 1 1 になります。常に後で定義したものが勝ちます。

function func() {
  alert(1);
};

function func(param) {
  alert(param);
}

これは「test undefined」になります。

Qihuan Piao

朴 起煥

中国育ち、東京暮らし。読んだり書いたり、時には考え込んだり。親になってから5年ほど、ブログ(とその他もろもろ)は完全停止していたけど、気づけばまた書いている。ここにはそんな寄り道の記録を書いています。結論が出ない話も多いけど、それもまたよし。