別のブログで公開してたものです。
一部をこっちのブログに移行しようと手動で(^^;)移行したものです。
クラスに行こうかと思ってたが、引数の省略と関数のオーバーロードについて書く。
引数の省略は変数名の後に?をつけると、省略可能になる。省略された場合、変数の値はundefinedになる。
function hoge(a:string, b?:number) :void {
alert("hoge:" + a +"," + b);
}
hoge("aaa");
この場合、"hoge:aaa,undefined"と表示される。
省略された時のデフォルト値を指定する方法がある。
function hoge(a:string, b:number = 10) :void {
alert("hoge:" + a +"," + b);
}
hoge("aaa");
この場合、"hoge:aaa,10"と表示される。
可変長引数は、変数の前に…を付けて配列する。
function hoge(a:string, ...b:any[]):void {
alert("hoge:" + a +"," + b);
}
hoge("aaa",10,2);
関数のオーバーロードは、引数の型が違う関数の宣言を書いておき、型の違う引数のところをanyやobjectにした関数本体を宣言する。その関数内で型のを調べて処理を分岐することでオーバーロードっぽいことを実現する。
function hoge(a:number):void;
function hoge(a:string):void;
function hoge(a:any):void {
if(typeof a == "number") {
alert("number");
} else {
alert("string");
}
}
hoge(18);
この場合、"number"と表示される。
コメント