我有两个非常相似的功能,如果可能的话,我希望将它们结合起来。我唯一的问题是一个函数正在接受2个参数,另一个函数正在接受3。是否有办法做到这一点,或者这两个函数必须按设计分开?

function getClientData(id, command) {

    var formData = {
        'method': command,
        'id': id
    };

    getEntityData(formData);
}


function getLocation(id, clientid, command) {

    var formData = {
        'method': command,
        'locationid': id,
        'clientbrandid': clientid
    };

    getEntityData(formData);
}


更新资料

function getEntityData(data) {

    var url = '/../admin/miscellaneous/components/global.cfc?wsdl';

    var ajaxResponse = $.ajax({
        url: url,
        dataType: 'json',
        data: data,
        global: false,
        async:false,
        cache: false,
        success: function(apiResponse){
            return apiResponse;
        }
    }).responseJSON;

    var response = ajaxResponse[0];

    for (var i in response) {
        if (response.hasOwnProperty(i)){
            $("#edit"+i).val(response[i].trim());
        }
    }
}

最佳答案

是的,您可以,我更喜欢传递一个js对象,并决定它所包含的参数,而不是传递每个参数,例如:

function getLocation(options) {

    getEntityData(options);
}


您的电话应该是:

getLocation({'method': command,'id': id})


更新资料

或者您可以避免使用getLocation函数,而只需调用getEntityData

getEntityData({
    'method': command,
    'id': id
});

关于javascript - 如何结合相似的功能-Javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23280841/

10-12 07:11