日々のアンテナ

日々アンテナを貼って、いろんな情報をキャッチ、発信したいと思います。
2017年10月 ≪  123456789101112131415161718192021222324252627282930 ≫ 2017年12月
TOPサイトのこと ≫ Javascriptでオーバーロードを実現する

Javascriptでオーバーロードを実現する

JavaをやっていてJavascriptを触ったりすると非常にごちゃごちゃになります。 よくやるのが for(int i = 0;・・・ という風に、intなんて思わず使っちゃったり。 これは置いておいて、JavascriptではJavaでいうオーバーロード(引数の数や型が異なるメソッドを宣言すること)ができません。 fooというメソッドがあった場合、Javaなら foo(String str,int i)と foo(String str) foo(int i,int j)が宣言することができ、引数の型や数でメソッドが自動的に選択されます。 ところが、Javascriptにはそもそも変数の型がないし、メソッドはプロパティに関数オブジェクトが代入されているだけなので、同名のメソッドを作ることができないのです。 でも、プログラムを組んでいて、引数を増やしたくなることってありますよね? フラグをつけたいなあと思ったりすることってあります。 その場合にいままで書いた分全部に新たな引数を加えるなんてすごくイヤです。 というわけで、Javascriptでオーバーロードの真似事を実現するには、 argumentsオブジェクトのlengthによって場合分けをします。
arguments.length
argumentsオブジェクトは引数を表すオブジェクトです。 配列と同じようにlengthが取得できます。 例: function test(arg1,arg2){  switch (arguments.length) {  case 1: test1(arg1);  case 2: test2(arg1,arg2);  default

Comment

編集
cで言うところ、printfとかscanfみたいな実装ですね。
2008年09月15日(Mon) 12:26












非公開コメントにする
Trackback

Trackback URL