如何为... params函数参数设置默认值?

时间:2013-01-17 23:02:28

标签: actionscript-3 function parameters default-value

我有一些实现此接口的类:

function execute(entity:Entity, ...params):void;

没关系,但是,我想要这个:

function execute(entity:Entity, ...params = null):void;

因为,不是每个班级都需要参数。

它会抛出编译错误。

好像我在AS3中没有... params的默认值。有没有办法做到这一点?

感谢。

2 个答案:

答案 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'};
    // ...
}