フリーエンジニアである下っ端SEの備忘録と日記。日々是精進。 開発言語は主にC#。 開発技術が日々進化し続けている今日、取り残されまいとするも歳のせいか覚えが悪いSE。 ほったらかしですいません。

スポンサーサイト

上記の広告は2週間以上更新のないブログに表示されています。 新しい記事を書くことで広告が消せます。  

Posted by スポンサー広告 at

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が実行される。

理屈はわかったので
あとは開発者の好みで美しいコーディングすればよいと。

@ITへのリンク


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


Posted by ようすけ at 09:00Comments(0)JavaScript