1. JavaScript / Говнокод #16313

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    js меня восхищает, реально. это язык, где проблемы с замыканием можно решить, добавив ещё одно замыкание. прикинем, например
    
    var object = ...;
    doShit(function /* async callback */ () { object.doOtherShit(); });
    
    пока вроде как всё зашибись. но вдруг понадобилось написать цикл:
    
    for (var i....) {
      var object = array[i];
      doShit(function /* this now fails hard */ () { object.doOtherShit(); });
    }
    
    что же делац? правильно, врапим всё в ещё одну функцию:
    
    for (var i....) {
      (function(object){
        doShit(function /* oh, it's okay again */ () { object.doOtherShit(); });
      })(array[i]);
    }

    Запостил: makc3d, 12 Июля 2014

    Комментарии (3) RSS

    • Дебил.
      Ответить
    • js меня восхищает, реально. это язык, где проблемы с заиканием можно решить, добавив ещё одно заикание.

      fixed
      Ответить

    Добавить комментарий