- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 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]);
}
fixed