オーバーロード
JavaScriptでは、関数オーバーロードの仕組みは基本的にはないらしい。Javaから機械的に移植しようとするときにはちょっときつい。
ただし可変個引数は可能らしく、それでなんとかするのが常套手段らしい(参考ページ:オブジェクトなJavaScriptの基礎講座「オーバーライドと多重定義について」)。
- arguments ... 引数が格納されているオブジェクト
- arguments.length ... 引数の個数
- arguments[n] ... n番目の引数(0始まり)
- サンプル
function GenericPoint() { if(arguments.length >= 2) { this.x = arguments[0]; this.y = arguments[1]; } else { this.x = 0; this.y = 0; } } var g1 = new GenericPoint(); // g1.x == 0, g1.y == 0 var g2 = new GenericPoint(5, 10); // g2.x == 5, g2.y == 10