我有以下功能:

function calculateAspect(options){
    def = {
        orgw: 0,
        orgh: 0,
        tarw: 0,
        tarh: 0
    };
    o = $.extend(def,options);
    console.log(o);


};
calculateAspect({orgw:640});


我希望能够传递如下所示的值:

calculatedAspect(640,480,320)


要么

calculateAspect(200)


给定功能,这似乎不合逻辑。但是我很好奇如何实现它。

最佳答案

您可以使用包含所有传递的参数的arguments

function calculateAspect(options){
    var argNames = ["orgw","orgh","tarw","tarh"];
    def = {
        orgw: 0,
        orgh: 0,
        tarw: 0,
        tarh: 0
    };
    for (var i=0, n=Math.min(arguments.length, 4); i<n; i++) {
        def[argNames[i]] = arguments[i];
    }
    console.log(o);
}

关于javascript - 将逗号分隔的参数传递给js函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4400328/

10-09 14:50