Я хотел переключиться на Coffeescript какое-то время, а вчера я думал, что я наконец-то продал, но затем я наткнулся на статью Armin Ronachers о теневом копировании в Coffeescript.
В настоящее время Coffeescript отказался от теневого копирования, примером этой проблемы может быть использование одного и того же итератора для вложенных циклов.
var arr, hab, i;
arr = [[1, 2], [1, 2, 3], [1, 2, 3]];
for(var i = 0; i < arr.length; i++){
var subArr = arr[i];
(function(){
for(var i = 0; i < subArr.length; i++){
console.log(subArr[i]);
}
})();
}
Поскольку cs объявляет только переменные, как только я не смог бы сделать это в coffeescript
Тень была умышленно удалена, и я хотел бы понять, почему cs-авторы захотят избавиться от такой функции?
Обновление. Вот пример лучшего примера о том, почему Shadowing важен, вытекает из проблемы, связанной с этой проблемой на github
PS: Я не ищу ответа, который говорит мне, что я могу просто вставить простой Javascript с обратными окнами.