Javascript 如何缩短此功能?

Javascript 如何缩短此功能?,javascript,function,Javascript,Function,在复选框的onchange事件上调用此函数。 当选中时,即接收方详细信息与发送方详细信息相同,接收方输入被分配发送方输入值并被禁用。 未选中时,即不相同的详细信息,接收器输入被启用并清空 function () { if (inputArr.sameReciever.checked) { inputArr.receiverName.value = inputArr.senderName.value; inputArr.receiverPhone.value

在复选框的onchange事件上调用此函数。 当选中时,即接收方详细信息与发送方详细信息相同,接收方输入被分配发送方输入值并被禁用。 未选中时,即不相同的详细信息,接收器输入被启用并清空

function () {
    if (inputArr.sameReciever.checked) {
        inputArr.receiverName.value = inputArr.senderName.value;
        inputArr.receiverPhone.value = inputArr.senderPhone.value;
        inputArr.receiverEmail.value = inputArr.senderEmail.value;
        inputArr.receiverName.setAttribute("disabled","true");
        inputArr.receiverPhone.setAttribute("disabled","true");
        inputArr.receiverEmail.setAttribute("disabled","true");
    }else{
        inputArr.receiverName.value = "";
        inputArr.receiverPhone.value = "";
        inputArr.receiverEmail.value = "";
        inputArr.receiverName.removeAttribute("disabled");
        inputArr.receiverPhone.removeAttribute("disabled");
        inputArr.receiverEmail.removeAttribute("disabled");
    }
});

我不确定这是否是你要找的。但我会继续这样说:

var attributesMap = {
    receiverName: 'senderName',
    receiverPhone: 'senderPhone',
    receiverEmail: 'senderEmail'
};

function fn() {
    for (var key in attributesMap) {
        if (inputArr.sameReciever.checked) {
            inputArr[key].value = inputArr[attributesMap[key]].value;
            inputArr[key].setAttribute("disabled","true");
        } else {
            inputArr[key].value = '';
            inputArr[key].removeAttribute("disabled");
        }
    }
}
这样更易于维护


如果您可以使用最新的javascript(ES6),您可以添加多项改进。

删除所有换行符和空白?但很严肃地说,可能不会太严重……也许在作为参数传递的对象中创建一个具有不同值的函数?考虑一下——为什么要缩短它?很清楚它是做什么的,它是可维护的。。。我就让它保持原样?