AS3使用可选Object实例化一个类

时间:2012-07-19 11:22:44

标签: actionscript-3 oop

我有一个需要用对象实例化的类:

public class FusePumpComboBox extends Sprite
{
    private var _rowCount;

    public function FusePumpComboBox(args:Object)
    {
        _rowCount = (args.rowCount !== undefined) ? args.rowCount : 5;
    }
}

如果我不想将行计数传递给它,并且如下所示立即播放该怎么办:

var obj:FusePumpComboBox = new FusePumpComboBox();

目前我收到错误的参数数量错误,正如您所期望的那样。我试过给args:Object一个默认值...我认为这就是解决方案的所在,只是不知道要给它什么或者如何(args:Object = {})不起作用。< / p>

编辑:我也会有吸气剂和制定者......

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

public function FusePumpComboBox(args:Object=null)
{
    _rowCount = (args && args.hasOwnProperty('rowCount')) ? args.rowCount : 5;
                       //      ^----- The correct way of checking the properties
}

答案 1 :(得分:0)

您可以使用null作为默认值,并检查方法中args是否为null

我必须注意,尽管这在JavaScript中是常见的(使用设置解析对象),但在OOP上下文中继续并不是一个好习惯。

答案 2 :(得分:-1)

上面的答案澄清了解决方案。

只是旁注:将参数传递给构造函数是一种糟糕的模式。

最好通过getter和setter来维护属性。

解析复杂的对象args必须在外部完成,因为据我所知,它不是类“自己的”功能。