Меня дико раздражает вот это дерьмо
a=1
f=function(){var a=a; alert(a)}
f()
f=function(a){return function(){alert(a)}}(a)
f()
2 функции, семантически равноценные, возвращают разные результаты. Как это назвать, если не ошибкой в дизайне? Вероятно, это связано с противоречиями, порождаемыми лексическим связыванием. Выпилить бы нахрен эти гребаные замыкания, язык бы от этого только выиграл, ящетаю. Не стоило бы превращать нормальный ЯП в быдлохашкель, в угоду моде.