-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);

この関数を実行すると、次のように表示されます。「ああ、あなたはクレジットカードの資格がありません。資本主義はそのように残酷です。」75 ではなく 125 で実行すると、次のようになります。「ああ、あなたはクレジットカードの資格がありません。資本主義はそのように残酷です。」

4

2 に答える 2

0

関数を呼び出す場所を確認し、そこで問題を探します。あなたの機能は問題ではなく、意図したとおりに機能します。

于 2013-10-31T11:09:50.930 に答える
0

@Andy がコメントで述べたように、コードの別の部分で checkCredit を呼び出している可能性があります。私の個人的な推測では、イベントに割り当てようとしているときに呼び出していると思います:

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

呼び出している場所を正確に特定するには、デバッガーを使用できます。関数の先頭にブレークポイントを配置し、コール スタックを確認します。最初の呼び出しは正しいもののように見えますが、2 番目の呼び出しは問題に直接つながります。Chrome、Firebug、さらには IE にもデバッガーがあるので、ほぼカバーできます。

/creditCheck\s*\(\)/gまたは、デバッガーが使いにくい場合は、任意のエディターでコード全体から RegExp を検索できます。デバッガー ルートを使用することをお勧めします。これは、将来さらに役立つからです。

于 2013-10-31T11:11:49.403 に答える