Moock の Essential ActionScript 2.0 を読んでいたら以下のコードに出会った。
public function update (o:Observable, infoObj:Object):Void {
// Cast the generic infoObj to the ClockUpdate datatype.
var info:ClockUpdate = ClockUpdate(infoObj);
...
}
// Cast the generic infoObj to the ClockUpdate datatype.
var info:ClockUpdate = ClockUpdate(infoObj);
...
}
変数 info に ClockUpdate 型のインスタンスを代入しているのだが、ClockUpdate のコンストラクタが取る引数は 4 つである。それなのに、渡しているのは infoObj だた 1 つである。勿論、オーバーロードは行っていない。
public function ClockUpdate (h:Number, m:Number, s:Number, r:Boolean) {
...
}
...
}
arguments.length を見ても 4 が返ってくるし、全く意味が解らなかったのだが、よく見たら、"Cast the generic infoObj to the ClockUpdate datatype." と書いてあるではないか。ただの型キャスト!すっかりコンストラクタと思い込んでいた。
というか、コメントをちゃんと読めよという話ですね…。