是不是可以定义一个静态const数组?我想为一个颜色数组的函数提供一个可选参数,
private static const DEFAULT_COLORS:Array = new Array(0x000000, 0xFFFFFF);
public function myConstructor(colorsArray:Array = DEFAULT_COLORS)
{
}
我知道我可以使用... args但我实际上想要为构造函数提供2个独立的数组作为选项参数。
答案 0 :(得分:3)
不可能,但你可以用它来模拟这种行为:
private static const DEFAULT_COLORS:Array = new Array(0x000000, 0xFFFFFF);
public function myConstructor(colorsArray:Array = null)
{
colorsArray = colorsArray ? colorsArray : DEFAULT_COLORS;
}
如果你的函数的编码方式使得null可以是一个有效值(例如发出某些条件),那么这将不起作用,但可能不是这里的情况。
修改强>
如果您打算在myConstructor中写入colorsArray,那么在这里复制DEFAULT_COLORS是明智的:
colorsArray = colorsArray ? colorsArray : DEFAULT_COLORS.slice();
对DEFAULT_COLORS数组的引用是常量,但其内容不是,因此您可能会意外更改默认值。