可能重复:
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();
}
我认为这是一个小问题,但我希望我的代码尽可能强大和高效!
由于
克里斯
答案 0 :(得分:7)
为了便于阅读,首选构造函数中的初始化 - 以便能够轻松查看在何时初始化的内容。最不可读的选择是混合这些,我不推荐。
您将看到AS3程序员使用的第三个选项:
这种方法有两个要点:
就性能而言,我相信你的两个例子会编译成相同的字节代码。 AS3编译器为构造函数之外的静态声明创建了一个特殊的类初始化程序,但是对于在声明时初始化的常规成员变量,我希望它只是将初始化移动到构造函数内部。但它是将它们向前移动还是在构造函数中明确指出之后?我不记得了,这就是为什么我把可读性作为将一切都放在构造函数中的主要原因: - )