我有一些实现此接口的类:
function execute(entity:Entity, ...params):void;
没关系,但是,我想要这个:
function execute(entity:Entity, ...params = null):void;
因为,不是每个班级都需要参数。
它会抛出编译错误。
好像我在AS3中没有... params的默认值。有没有办法做到这一点?
感谢。
答案 0 :(得分:3)
我不知道有任何方法可以在声明点将params
的默认值设置为空数组以外的其他值,但是解决方法类似于:
function exec(entity:Entity, ... extraParams)
{
// EDIT: strange that you are getting null,
// double check your variable names and if needed you can add:
if(extraParams == null)
{
extraParams = new Array();
}
if(extraParams.length == 0) // If none are specified
{
// Add default params
extraParams[0] = "dude";
extraParams[1] = "man";
}
// the rest of the function
}
答案 1 :(得分:0)
function exec(entity:Entity, ...params){
// Set default values if no params passed:
params = arguments.length > 1
? params
: {foo:'defaultFooVal', bar:'defaultBarVal'};
// ...
}