JavaScript closure and scope chain -
Can anyone explain why I think the answer to this question is more intense than the duplicate question , so this post is worth keeping. "post-text" itemprop = "text"> Sure. In your What is actually happening is that external variables each closure So, for the first time through the loop, you get a task that gives In the loop at the end, Update address address question. It's a little confusing since you use ... You can return all the functions in your other variables, which I ... document.write part always 10 output?
function creatFunctions () {var results = new array (); For (var i = 0; i & lt; 10; i ++) {result [i] = function () {return i; }} Return result; } Var funcs = creatFunctions (); For (var i = 0; i & lt; funcs.length; i ++) {document.write (funcs [i] () + "
in the loop, you reference i . Do you expect this to happen that every stop time ceremony has been created but I get a snapshot, so in the first ceremony it will return 0, then 1, etc. i is to get references, which i to i in the loop as . i , which is 0 at this point. Next time you get two functions which are i , which is now 1, etc. i == 10 , and each function i in two different contexts. I could make a very slight changes in your code will, so that it becomes clear that what is happening:
function creatFunctions () {var result = new Array (); For (var i = 0; i & lt; 10; i ++) {result [i] = function () {return i; }} Return result; } Var funcs = creatFunctions (); // Note: I it`s the `unrelated_variable` for I`d change (unrelated_variable = 0 var; unrelated_variable & LT; funcs.length; unrelated_variable ++) {document.write (funcs [unrelated_variable] () + '& lt ;);} creatFunctions () function i < / code>. in particular, they say that you return I to create the loop. unrelated_variable has been named, there is no effect on the price derived from your closing.
Results [i] = F Quote () {return i;} is not similar to the result [2] = 2 . This means the result [2] = the_current_value_of_i
Comments
Post a Comment