-3
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 来运行它,它会说:“你赚了很多钱!你有资格获得信用卡。” “唉,你没有资格获得信用卡。资本主义就是那样残酷。”

4

2 回答 2

0

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

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

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

或者,如果您发现调试器难以使用,您可以/creditCheck\s*\(\)/g在您选择的编辑器中搜索整个代码以查找 RegExp。我仍然建议您走调试器路线,因为它将来使您受益更多。

于 2013-10-31T11:11:49.403 回答
0

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

于 2013-10-31T11:09:50.930 回答