函数中可变数量的参数

时间:2014-04-28 18:04:09

标签: javascript function syntax

是否有可能根据传递的参数数量告诉函数它应该为其参数赋予哪些名称?像这样:

function soSwag(swagLevel, swagStart, swagDuration || swagStart, swagStop){}

2 个答案:

答案 0 :(得分:1)

据我所知。但是,您只需传入包含所需数据的对象即可。

soSwag({
    swagStart: 10,
    swagStop: 100
});

但是,简单地将null传递给第一个参数可能更简洁。

答案 1 :(得分:1)

支持变量类型参数的一些流行的库(例如jQuery)会检查参数然后相应地交换值:

function soSwag(swagLevel, swagStart, swagDuration) {
    if (arguments.length === 2) {
        var swagStop = swagStart;   // 2nd arg becomes swagStop
        swagStart = swagLevel;      // first arg becomes swagStart

        // code here that uses swagStart and swagStop
        // as called like soSwag(swagStart, swagStop)

    } else {

        // code here that uses swagLevel, swagStart, swagDuration
        // as called like soSwag(swagLevel, swagStart, swagDuration)

    }
}