2009年08月20日
【Web】JavaScriptのオーバーロード
Web開発開発にまだ慣れてない頃、
C#やJavaの感覚でコーディングしたら
思ったとおり動かなくて。
function Test (arg1)
{
処理1
}
function Test (arg1,arg2)
{
処理2
}
function form_Load()
{
Test (arg1);
Test (arg1,arg2);
}
としたら、処理1が2回実行されてしまう。
arg2はとりあえず無視されるらしい。
つまり
JavaScriptではオーバーロードはできない。
手っ取り早いのは
メソッド名(ファンクション名?)を違うものにする。(雑っ!)
もっとちゃんとする場合
オーバーロードちっくにコーディングする。
JavaScriptにはargumentsというオブジェクトがあって、
これで関数に渡された引数の数をチェックできるのでそれを利用して、
function Test (arg1,arg2)
{
if (arguments.length == 1)
{
//引数が1つの場合
処理1
}
else if (arguments.length == 2)
{
//引数が2つの場合
処理2
}
}
これだと、引数をもう1つ増やしたいと思ったら、
function Test (arg1,arg2,arg3)
と修正して、引数が3つの場合の処理を加え、
function form_Load()
{
Test (arg1);
Test (arg1,arg2);
Test (arg1,arg2,arg3); ←これを追加
}
とすれば、処理1~処理3が実行される。
理屈はわかったので
あとは開発者の好みで美しいコーディングすればよいと。

この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m

C#やJavaの感覚でコーディングしたら
思ったとおり動かなくて。
function Test (arg1)
{
処理1
}
function Test (arg1,arg2)
{
処理2
}
function form_Load()
{
Test (arg1);
Test (arg1,arg2);
}
としたら、処理1が2回実行されてしまう。
arg2はとりあえず無視されるらしい。
つまり
JavaScriptではオーバーロードはできない。
手っ取り早いのは
メソッド名(ファンクション名?)を違うものにする。(雑っ!)
もっとちゃんとする場合
オーバーロードちっくにコーディングする。
JavaScriptにはargumentsというオブジェクトがあって、
これで関数に渡された引数の数をチェックできるのでそれを利用して、
function Test (arg1,arg2)
{
if (arguments.length == 1)
{
//引数が1つの場合
処理1
}
else if (arguments.length == 2)
{
//引数が2つの場合
処理2
}
}
これだと、引数をもう1つ増やしたいと思ったら、
function Test (arg1,arg2,arg3)
と修正して、引数が3つの場合の処理を加え、
function form_Load()
{
Test (arg1);
Test (arg1,arg2);
Test (arg1,arg2,arg3); ←これを追加
}
とすれば、処理1~処理3が実行される。
理屈はわかったので
あとは開発者の好みで美しいコーディングすればよいと。

この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m

【JavaScript】0埋めしたい 数値の0パディング
JavaScriptのonchange
【JavaScript】不正な数値かチェックする
【Web】JavaScript 半角数字のみ入力させる
JavaScriptのonchange
【JavaScript】不正な数値かチェックする
【Web】JavaScript 半角数字のみ入力させる
Posted by ようすけ at 09:00│Comments(0)
│JavaScript