2009年10月24日
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」になります。