这些条款是否相同?

时间:2012-08-22 07:57:11

标签: javascript

我正在查看我的同事写的一个javascript,我认为它看起来在两个子句中都是一样的:

function doSubmitOversikt(action, command, status) {

    var checked = document.getElementById("klarbox").checked;

    if(status && !checked) {

        if (confirm("Ärendet är satt som Klar (formell handläggning första delen klar). Vill du verkligen ångra detta? Att ångra kan innebära att ärendet behöver arras om i CICS.")) {

            document.actionForm.action.value = action;
            document.actionForm.actionCommand.value = command;  
            document.actionForm.submit();
            disableAll();

        }
    } else {

        document.actionForm.action.value = action;
        document.actionForm.actionCommand.value = command;  
        document.actionForm.submit();
        disableAll();
    }

}

上述代码与无条件执行之间有什么区别

    document.actionForm.action.value = action;
    document.actionForm.actionCommand.value = command;  
    document.actionForm.submit();
    disableAll();

3 个答案:

答案 0 :(得分:5)

不一样。如果status!checked都评估为true,则用户不会确认。没有任何反应。

但请注意,在执行此操作时违反了DRY principle

答案 1 :(得分:1)

第一个循环仅在确认为肯定时执行;如果未选中该复选框,则status为真值。

答案 2 :(得分:1)

我不认为他们是一个条件是如果状态是真的并且没有检查然后要求确认否则什么都不做。如果状态不为真或已经检查,则执行。