`
mysh
  • 浏览: 29582 次
  • 性别: 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
分享到:
评论

相关推荐

    AS 快捷键.docx

    - **查看当前类成员**:`⌘F12` - 显示类内部成员,`⌘i`显示匿名类。 - **重写/实现方法**:`⌃o` - 选择可以重写或实现的方法。 5. **代码导航** - **查找使用**:`⌥F7` - 查找方法在哪被使用,类似Eclipse的...

    kotlin中反射遇到的问题_kotlin_

    可以使用`is`关键字进行类型检查,然后使用`as`或`as?`进行安全转换。 9. **扩展函数和扩展属性** 扩展函数和属性在Kotlin中不是类的一部分,因此无法通过反射直接访问。如果需要这些功能,可能需要额外的逻辑来...

    iphone——Swift中文教程完整版

    - **为自判断链接定义模型类**: 可以定义一个包含可选类型的类,然后在这个类中实现自判断链接。 - **通过自判断链接调用属性**: 使用自判断链接可以安全地访问可选类型的属性。 - **通过自判断链接调用方法**: 同样...

    python分段函数.pdf

    Python虽然没有内置的`switch`语句,但可以通过if-else语句或者第三方库如`func`来模拟实现。下面我们将详细讨论如何在Python中使用if-else、`switch`模拟以及numpy的`piecewise`函数来实现分段函数。 1. **使用if-...

    重新审视AS间IP欺骗让保护驱动源地址验证

    本文将探讨部署性问题的关键点,并提出了一种新的安全服务——跨自治系统(Autonomous System,AS)源地址保护(inter-AS Source Address Protection,iSAP)。技术上,iSAP通过提高一个自治系统内的源地址不成为...

    DISCS:跨AS欺骗防御的分布式协作系统

    这种攻击方式在分布式拒绝服务(DDoS)攻击中特别普遍,因为它可以提高攻击的匿名性并放大攻击强度,从而使得防御变得更加困难。DDoS攻击长期以来一直是互联网服务提供商(ISPs)面临的首要运营威胁之一。 传统的DDoS...

    c#学习方法

    - `IS`和`AS`关键字:掌握这两个关键字在类型判断和转换中的应用。 - 枚举类型以及适用场合:了解枚举类型的特点及其适用场景。 - 字符串理论:深入研究字符串内部实现机制。 5. **深入学习集合特性**: - 索引...

    Python 语言程序设计练习题.docx

    ### 3. Python的控制语句 Python提供了多种控制语句,包括: - **条件语句**:if、elif、else - **循环语句**:for、while - **跳转语句**:break、continue、pass ### 4. 列表与元组的异同及用途 - **列表**:...

    Python使用Tkinter实现滚动抽奖器效果

    使用Tkinter的`Button`类创建按钮,并通过`command`参数传递一个函数(或匿名函数),以便在按钮被点击时执行相应的操作。同样,使用`place()`方法设置按钮的位置。 抽奖器的核心逻辑包括选择中奖者和模拟滚动效果...

    C# 管道通信

    管道通信大致可以分为两种类型:匿名管道和命名管道。其中,命名管道提供了更加强大的功能,如全双工通信、支持网络通信等特性。 #### 二、命名管道的特点与优势 命名管道相比于匿名管道具有更多的功能,主要特点...

    javascript使用闭包模拟对象的私有属性和方法

    由于JavaScript不支持像Java那样的`private`关键字来声明私有方法或属性,开发者通常利用闭包来模拟私有成员。在面向对象编程中,私有成员指的是仅限于对象内部使用的数据和功能,外部无法直接访问。 闭包的产生...

    stealth.min.js

    3. **使用虚拟浏览器环境**:例如Headless Browser、BrowserMob Proxy等工具,它们提供了更高级别的匿名性。 4. **修改User-Agent字符串**:通过模拟不同设备的User-Agent字符串来规避检测。 5. **随机化JavaScript...

    最全的大数据术语合集 (2).pdf

    7. **人工智能(Artificial Intelligence)**: 人工智能是使计算机模拟人类智能,实现自我学习和适应能力的科学。 8. **行为分析法(Behavioural Analytics)**: 行为分析法关注用户的实际行为,以了解用户动机、习惯和...

    TMAC修改Mac地址

    TMAC使得用户能够在不改变硬件的情况下,自定义电脑、WiFi网卡以及宽带适配器的MAC地址,从而实现某些特定的功能或解决应用限制。 1. **为什么要修改MAC地址**: - **避免限制**:有些网络服务提供商可能会根据MAC...

    Asp.net读取Word的实例与总结

    - 如果应用程序正在通过`<identity impersonate="true"/>`进行模拟,则需要确保匿名用户(通常是IUSR_MACHINENAME)具有相应的权限。 #### 五、结论 通过上述步骤,我们成功地实现了在ASP.NET中使用C#语言操作...

    详解ECMAScript6入门–Class对象

    类也可以用表达式形式定义,这在某些场景下很有用,比如匿名类或动态类定义: ```javascript const MyDynamicClass = class { // ... }; ``` 总结来说,ECMAScript6的Class语法简化了JavaScript的面向对象...

    Python面试题汇总及答案详解

    3. **模块与包**:导入模块(import、from...import、import...as...)、创建模块和包、sys模块、os模块、math模块等。 4. **面向对象编程**:类的定义、对象的创建与实例化、封装(访问修饰符public、private、...

Global site tag (gtag.js) - Google Analytics