gpt4 book ai didi

actionscript-3 - 在变量声明或构造函数中实例化类

转载 作者:行者123 更新时间:2023-12-04 04:33:58 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
Where is the “proper” place to initialize class variables in AS3



我想知道是否有人知道在它的变量声明或构造函数中实例化类是否更好?例如,这个:
protected var _errorHandler:ErrorHandler = new ErrorHandler();

或这个:
protected var _errorHandler:ErrorHandler;

public function someClass() {
_errorHandler = new ErrorHandler();
}

我认为有一点,但我希望我的代码尽可能健壮和高效!

谢谢

克里斯

最佳答案

首选构造函数中的初始化,以提高可读性——因为能够轻松查看什么时候初始化。最不可读的选项是混合这些,我不推荐。

您将看到 AS3 程序员使用的第三个选项:

  • 变量声明中没有初始化
  • 空(或几乎空)构造函数
  • 所有初始化都在一个或多个专用 init() 函数中完成

  • 这种方法有两件事可以提供:
  • 您可以通过再次调用 init 轻松重置对象以供重用
  • 您可以绕过 AS3 不允许您像其他类似语言 (Java/C++/C#) 那样重载构造函数的限制。例如,您可能希望能够使用一种或多种不同类型的对象初始化数据结构。

  • 就性能而言,我相信您的两个示例将编译为相同的字节码。 AS3 编译器为构造函数外部的静态声明创建了一个特殊的类初始化器,但对于在声明时初始化的常规成员变量,我希望它只是将初始化移动到构造函数内部。但是它是将它们移到前面还是在构造函数中明确指定的后面?我不记得了,这就是为什么我将可读性作为自己将所有内容放入构造函数的主要原因:-)

    关于actionscript-3 - 在变量声明或构造函数中实例化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5650845/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com