我想将配置参数传递给类。这些都是配置类的可选变量 - 并且应该能够以任何顺序运行。
此刻我只是通过常规方式通过可选的变量。假设构造函数如下:
private var _reqVar:String;
private var _optVar1:String;
private var _optVar2:String;
public function Constructor(reqVar:String, optVar1:String = "empty", optVar2:String = "empty){
// set the variable to equal the arguments here...
}
这个问题是针对最终用户的,其中实例化类不是特别可读(特别是当参数列表变得非常大时)
理想情况下,我希望传递参数,但类似于:
var instance:ClassType = new ClassType(reqVar, {width:100, height:100, speed:4, lives:3})
这又是相当直接的。我偶然发现了以下几点:
任何帮助表示感谢。
答案 0 :(得分:2)
更新回答:
public function Test(reqVar, optionalVars:Object)
{
for (var prop:String in optionalVars)
{
try
{
this[prop] = optionalVars[prop];
}
catch (error:Error)
{
throw new Error("Unknown property: " + prop);
}
}
}
所以问题的答案是:
object[NAME]
按名称分配属性或变量,在本例中为this['propertyName']
。hasOwnProperty
检查属性是否存在。 更新:如果您还要分配属性以外的变量,我认为您无法检查它们是否存在。要解决此问题,您可以假设它们存在,分配给它们并在使用无效的变量名时出错。您还可以将赋值包装在try ... catch块中,并抛出一个更漂亮的异常,如上所示。