fork download
  1. funcs = [];
  2.  
  3. function addSomething(f) {
  4. funcs.push(f);
  5. }
  6.  
  7. function test() {
  8. for (var i=0; i<3; i++) {
  9. // эта переменная одна на всю функцию, хотя кажется, что ее скоп
  10. // ограничен соотв. блоком, и каждая лямбда захватит именно свою переменную
  11. var id = i;
  12. addSomething(function () { print(id); });
  13. }
  14. }
  15.  
  16. test();
  17.  
  18. for (var i=0; i<funcs.length; i++) {
  19. funcs[i]();
  20. }
Success #stdin #stdout 0.02s 4940KB
stdin
Standard input is empty
stdout
2
2
2