JS-lintが 'factorial'が定義される前に使用されていると不平を言わないように、Javascriptでお互いを呼び出す関数のペアをどのように定義できますか?JavaScript関数間の循環参照
function factorial1(n) { return factorial(n); }
function factorial(n) { return n === 0 ? 1 : n * factorial1(n - 1); }
JSlintを満たす有効な注文がないようです。 (一方はもう一方に埋め込むことができますが、これはお互いに呼び出す関数の集まりにとっては悪夢です)。
確かにこれは言語の権利によって処理されますか? これはJSlintのバグですか? (この質問はどこかで答えたはずですが、見つけられません)
おそらく 'n === 0? 1:... '。また、何が動作しないのですか(私がすでに指摘した論理的なエラーを除く)? – Dogbert
>>これは確かに言語の権利によって処理されますか? 通常、ページが応答しなくなり、ブラウザがポップアップアラートを表示してスクリプトを停止するか、続行するかを尋ねます。 – mohkhan
@dobertはい、あなたの編集は正しいです。実際の問題は、JSlintは定義される前に '階乗'が参照されていると不平を言うことです。 –