`
mysh
  • 浏览: 28867 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

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

阅读更多
之前写了篇文章,描述了 AS3 模拟实现匿名类的一种方法(AS3 匿名类实现模拟(有类型)),它虽然有静态语言的一些优点,如有类型,风格还算优雅,但是显然需要付出一些代价,如要多写几个类型定义。

假如需要的匿名实现很多,而且类型不是那么重要的时候,可以采用简单一点、动态一点的方式,这种方式更像 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);
		}
			
	}
}


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

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics