- 1
- 2
var lol = (timeout) => setTimeout(lol, setTimeout(console.log, timeout, 'kek'), timeout);
lol();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
var lol = (timeout) => setTimeout(lol, setTimeout(console.log, timeout, 'kek'), timeout);
lol();
на жабьем скрипте?
И насколько же ты пони?
Нептуния сосёт
var lol = (timeout) => setTimeout(lol
lol же еще не определен. Или там как в питоне позднее связывание?
Но тут вообще var lol уже определено. Т.е. сначала определяется var lol, затем строится выражение, зависящее от lol, затем оно присваивается самой переменной lol.
В статическом питухе была бы переменная типа Function/FuncPtr/Delegate/Block, которая тоже бы сначала определилась, а потом заполнилась выражением, которое вполне может на неё ссылаться и знать её тип.
https://ideone.com/R1KVv6
Единственное, тут пришлось задать тип fac явно и захватывать по ссылке.
Ну хз как. В жаве матерится
int a = a + 1;
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The local variable a may not have been initialized
> Exception
То есть успешно скомпилировалось.
Вот если правая часть бы как-то использовала ссылку, может и сработало бы без падений.
Могу лишь предположить, что int a = ... - и есть самая-самая первая инициализация переменной, перед которой уже не ставят других инициализаций.
Может эклипс по-другому ошибки выводит.