Permitindo que a função javascript aceite qualquer número de argumentos

Eu gostaria que a função abaixo fosse mais flexível e aceitas vários retornos de chamada para outras funções se elas estiverem definidas nos argumentos.

$(function() {
    function icisDashBox(colorElem, thisWidth, thisHeight, completeCallBack) {
        $(colorElem).colorbox({
        transition: 'none',
        innerWidth: thisWidth,
        innerHeight: thisHeight,
        opacity: '0.5',
        onOpen: function() { 

        },
        onLoad: function() { 

        },
        onComplete:function() { 
            $('#cboxLoadedContent').wrap('<div id="icis_dialog_msg" />'); 

            completeCallBack();

        },
        onCleanup: function() { 

        },      
        onClosed: function() {
            $('#cboxLoadedContent').unwrap(); 
        }
    });
}

icisDashBox('.example9', '500', '500', completeFunction);

function completeFunction() {

    var fooClass = $("#colorbox").addClass("FOO");

    var barClass = $("#colorbox").addClass("BAR");

    var ajaxCnt = $.ajax({
        type: "GET",
        url: "http://www.payso.me.uk",
        dataType: "html",
        success: function(data) {
            $("#colorbox").addClass("AJAX SUCCESS");
        }
    });

    return {
        x : fooClass,
        y : barClass,
        z : ajaxCnt                         
    };
}

Portanto, em um mundo ideal, minha função ficaria assim sem declarar explicitamente nenhum argumento:

function icisDashBox() { function code here }

Isso é possível? Além disso, se os argumentos não estiverem definidos, como faço para lidar com isso?

Por exemplo, se uma chamada para a função tiver vários retornos de chamada definidos e outro apenas um, existe uma maneira de lidar com a falta de presença de retornos de chamada.

Felicidades,

:)