- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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]);
}
guest 29.07.2014 00:49 # 0
guest 29.07.2014 00:58 # 0
kegdan 29.07.2014 06:56 # 0
fixed