AS3 匿名类实现模拟(无类型)

之前写了篇文章,描述了 AS3 模拟实现匿名类的一种方法([url=http://mysh.iteye.com/blog/644482]AS3 匿名类实现模拟(有类型)[/url]),它虽然有静态语言的一些优点,如有类型,风格还算优雅,但是显然需要付出一些代价,如要多写几个类型定义。

假如需要的匿名实现很多,而且类型不是那么重要的时候,可以采用简单一点、动态一点的方式,这种方式更像 JavaScript:
package zzx.test.flex.closure2 {
import mx.controls.Alert;

public class Anonymouse {

public function test1():void{
testAnonymouse({
f1:function():void{
Alert.show("this is anonymouse f1");
},
f2:function(name:String):void{
Alert.show("hello, "+name);
}
});
}

private function testAnonymouse(obj:Object):void{
obj.f1();
obj.f2({name:"mysh"}.name);
}

}
}


这种方式的优点显而易见:它使用灵活,不需要额外的类型定义;缺点是,匿名类对象没有类型,如果你的方法签名(方法名和参数列表)写错了,错误需要在运行时(而不是编译时)才能被发现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值