actionscript 3默认构造函数说明

时间:2010-12-23 07:45:34

标签: actionscript-3 constructor default

我得到这些构造函数的重复声明,默认构造函数是否将class作为默认值....有人知道答案吗?

public function GraphNodeStyle() {
    super(CollapsibleNodeStyleComponent);
}

public function GraphNodeStyle(componentClass:Class) {
    super(componentClass);
}

2 个答案:

答案 0 :(得分:1)

在ActionScript中只能有一个构造函数。改为使用initializeWithComponentClass()方法。

答案 1 :(得分:1)

您可以使用构造函数的默认值,并依赖于使用正确参数调用super的值:

如果您有兴趣区分new GraphNodeStyle(null)而不是new GraphNodeStyle()

class GraphNodeStyle extends ... {
    function GraphNodeStyle(componentClass:Class=null) {
        super((componentClass===null)?CollapsibleNodeStyleComponent:componentClass);
    }
}

否则你可以使用*作为类型接受未定义的值,这样你就可以区分这两种情况,当然你放弃了从编译器验证的类型,因为你接受任何值,而不仅仅是类:

类GraphNodeStyle扩展... {

    function GraphNodeStyle(componentClass:*=undefined) {
        super((componentClass===undefined)?CollapsibleNodeStyleComponent:componentClass);
    }
}