在ActionScript3.0中是不支持函數重載的.
最近, 想了個辦法來模擬.
第二種方法
其中addString是add函數的String類型的重載函數.
如果大家有什么更好的解決方案, 請不吝賜教.
最近, 想了個辦法來模擬.
public?function?add(obj1?:?Object?=?null,?obj2:?Object?=?null)?:?void?{
????if?(obj1?==?null?&&?obj2?==?null?)?{
?????????//?調用無參數Add函數
?????????AddNoArgument();
????}
????else?if?(?typeof(obj1).toString().toLowerCase()?==?"string")?&&?obj2?==?null?)?{
?????????//?調用String參數的Add函數
?????????AddString(obj1.toString());
????}
}
當然這個方法也會有一些問題.????if?(obj1?==?null?&&?obj2?==?null?)?{
?????????//?調用無參數Add函數
?????????AddNoArgument();
????}
????else?if?(?typeof(obj1).toString().toLowerCase()?==?"string")?&&?obj2?==?null?)?{
?????????//?調用String參數的Add函數
?????????AddString(obj1.toString());
????}
}
第二種方法
public?function?add(
?args)?:?void?{
????if?(args.length?==?0)?{
?????????//?調用無參數Add函數
?????????AddNoArgument();
????}
????else?if?(?args.length?==?1?&&?typeof(args[0])?==?"int")?)?{
?????????//?調用String參數的Add函數
?????????AddString(args[0].toString());
????}
}

????if?(args.length?==?0)?{
?????????//?調用無參數Add函數
?????????AddNoArgument();
????}
????else?if?(?args.length?==?1?&&?typeof(args[0])?==?"int")?)?{
?????????//?調用String參數的Add函數
?????????AddString(args[0].toString());
????}
}
其中addString是add函數的String類型的重載函數.
如果大家有什么更好的解決方案, 請不吝賜教.