1

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

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 = {}) 不起作用。

编辑:我也会有吸气剂和二传手......

4

3 回答 3

1

你可以试试这个:

public function FusePumpComboBox(args:Object=null)
{
    _rowCount = (args && args.hasOwnProperty('rowCount')) ? args.rowCount : 5;
                       //      ^----- The correct way of checking the properties
}
于 2012-07-19T11:26:07.890 回答
0

您可以将null其用作默认值并检查是否argsnull方法内。

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

于 2012-07-19T11:24:43.603 回答
-1

上面的答案阐明了解决方案。

附带说明:将参数传递给构造函数是一种不好的模式。

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

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

于 2012-07-19T11:29:11.613 回答