0

私には2つの機能があります。

getCustomers() - 顧客リストを取得 getCustomerDetials() - 各顧客の詳細を取得

私が実行するgetCustomers()と、その機能はそれ自体の中で実行されますgetCustomerDetails()... 明らかに、すべての顧客とその詳細をリストする必要があります。

それで、ここにプロセスがあります。

getCustomers()すべての顧客 ID のリストをロードし、各顧客 ID をループします。

for(i = 0; i < array_count; i++); 

getCustomerDetails(id)見つかった顧客ごとに を起動します。

getCustomerDetails次に、独自の内部ループを実行します。

for(i = 0; i < array_count; i++);

各詳細をループします。

問題: 親関数と内部で実行されている関数の両方から実行されている 2 つの同一の for ループがありました。

基本的に、ループの「i」変数の内部が親のループの「i」変数を更新しているようで、決して終了しません!

内部関数のループ「i」変数を i2 に変更したところ、すべて正常に戻りました。

説明が長くなって申し訳ありませんが、これが正常であり、予想される結果であることを明確にしたかっただけですか? または、私のコードに何か問題がありますか?

私はいくつかの言語を扱ってきました (私はベテランの PHP および AS2 プログラマーです) が、これまでこの衝突に遭遇したことはありませんでした.

4

1 に答える 1

7

関数内で宣言された変数はローカルのままだと思いますか?

彼らはそうします。問題は、関数内で変数を宣言していないことです。

varキーワードを使用して変数を宣言します。

for (var i = 0; i < array_count; i++)

このキーワードがなければ、グローバル変数を使用しています。


これについては、JavaScript の本で説明する必要があります。どちらを使用していますか?

于 2013-04-02T09:52:46.933 に答える