*
  Мысли   Галерея   Проекты   Тексты  
  Мысли   Галерея   Проекты   Тексты  
Giver: ну офигеть теперь  (2014-10-01 18:42:48)

Пишу тесты/демку к своему ресту, и тут вылетает эксепшон "Михаил != Юрий", я шоке, оказывается:

Rhino 1.7 release 2 2010 11 17
js> arr=[];

js> print(u);
js: "", line 3: uncaught JavaScript runtime exception: ReferenceError: "u" is not defined.
	at :3

js> (function() { for(var u in [0,1,2]) arr.push(function(e) { print(u); } ) })(); 
js> print(u);
js: "", line 7: uncaught JavaScript runtime exception: ReferenceError: "u" is not defined.
	at :7

js> for(var f in arr) arr[f](0);                                                   
2
2
2
js> 

Как они это сделали? Как и зачем?!


upd: Нашлось решение, оно не менее странное, чем сама проблема, но все же работает.

(function() { for(var u in [0,1,2]) with({u:u}) arr.push(function(e) { print(u); } ) })(); 
    

Имя:
Комментарий: