for(i=0;i<3;i++){循环体}执行过程是赋初值0,然后执行判断语句i<3,为true的话,执行循环体,循环体执行完之后执行i++;所以当i执行到2的时候,i<3为true,执行循环体,然后i++,此时i等于3,然后判断i<3,判断为false,不执行循环体,退出循环,此时i=3;
for(i=0;i<3;i++){循环体}
i<3
i++
i=3
最後の for ループの後、i++ は i を 3 に変更しました
この問題は、実際には、関数の実行タイミングの問題であり、ループが実行された後、配列内の関数が再度呼び出されるときに実行されます。 、3つしかできません
js は、最初に、実行処理中に、arr[0]= function(){return i;}、arr[1]= function(){return i;}、arr[2] とすべてのループが実行されます。 = function(){return i;}同時に、i を 3 までループした後、arr[0]() などを呼び出します。このとき、スコープ内の i は 3 なので、常に 3 になります。 3.
追記: この質問では、最初に arr = F() を実行する必要があります。そうしないと、エラーが報告されます~~
for(i=0;i<3;i++){循环体}
执行过程是赋初值0,然后执行判断语句i<3
,为true的话,执行循环体,循环体执行完之后执行i++
;所以当i执行到2的时候,i<3
为true,执行循环体,然后i++,此时i等于3,然后判断i<3
,判断为false,不执行循环体,退出循环,此时i=3
;最後の for ループの後、i++ は i を 3 に変更しました
この問題は、実際には、関数の実行タイミングの問題であり、ループが実行された後、配列内の関数が再度呼び出されるときに実行されます。 、3つしかできません
js は、最初に、実行処理中に、arr[0]= function(){return i;}、arr[1]= function(){return i;}、arr[2] とすべてのループが実行されます。 = function(){return i;}同時に、i を 3 までループした後、arr[0]() などを呼び出します。このとき、スコープ内の i は 3 なので、常に 3 になります。 3.
追記: この質問では、最初に arr = F() を実行する必要があります。そうしないと、エラーが報告されます~~