in reply to Re: [OT] Perl / Computer Science Science Fair Projects
in thread [OT] Perl / Computer Science Science Fair Projects
Unfortunately in JavaScript all variables are scoped to the nearest function call. So a literal translation does something very different:One of the joys of using the Mozilla Javascript environment exclusively is that that some of these issues have been dealt with. Javascript 1.7 introduced the let keyword that deals with this scoping issue.How annoying.for (var i = 0; i < some_array.length; i++) { // Declaring this in the loop creates a one variable for // all instances of the loop. var x = some_array[i]; closures.push(function () { // Do something using x. I'll just return it. return x; }); } // All closures now point at the last element.
for (var i = 0; i < some_array.length; i++) { // Declaring this in the loop creates a one variable for // all instances of the loop. let x = some_array[i]; closures.push(function () { // Do something using x. I'll just return it. return x; }); } // now works as expected
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: [OT] Perl / Computer Science Science Fair Projects
by tilly (Archbishop) on Sep 09, 2008 at 18:01 UTC | |
by BrowserUk (Patriarch) on Sep 09, 2008 at 20:35 UTC | |
by tilly (Archbishop) on Sep 09, 2008 at 20:55 UTC | |
by ikegami (Patriarch) on Sep 09, 2008 at 21:06 UTC | |
by tilly (Archbishop) on Sep 09, 2008 at 21:37 UTC | |
by Anonymous Monk on Sep 11, 2008 at 05:22 UTC |