我有一个需要用对象实例化的类:
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>
编辑:我也会有吸气剂和制定者......
答案 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必须在外部完成,因为据我所知,它不是类“自己的”功能。