为什么输出会重复出现

时间:2013-10-31 11:01:44

标签: javascript

var creditCheck = function(income) {
    if(income >= 100) {
        console.log("You earn a lot of money! You qualify for a credit card.");
    } else {
        console.log("Alas you do not qualify for a credit card. Capitalism is cruel like that.");
    }
};
creditCheck(75);

当我运行此功能时,它显示以下内容: “唉,你没有资格获得信用卡。资本主义就像那样残酷。” “唉,你没有资格获得信用卡。资本主义就像那样残酷。” 如果我用125而不是75运行它会说如下: “你赚了很多钱!你有资格获得信用卡。” “唉,你没资格获得信用卡。资本主义就像那样残酷。”

2 个答案:

答案 0 :(得分:0)

查看您调用该功能的位置并在那里查找问题。你的功能不是问题,它按预期工作。

答案 1 :(得分:0)

正如@Andy在评论中提到的,你可能在代码的另一部分调用了checkCredit。我个人的猜测是,当你试图将它分配给一个事件时,你正在调用它:

div.onclick = creditCheck(); // the () call it now instead of assigning the function as callback for the click event

要确定您在何处调用它,可以使用调试器。在函数开头放置一个断点,然后检查调用堆栈。第一个电话看起来是正确的,而第二个电话会引导你直接解决问题。你在Chrome,Firebug甚至IE中都有一个调试器,所以你已经被覆盖了。

或者,如果您发现难以使用调试器,则可以在所选编辑器中搜索整个代码以查找RegExp /creditCheck\s*\(\)/g。我仍然建议你去调试器路线,因为它将来会对你有所帮助。