Проблема с видимостью переменной
Пытаюсь создать несколько Event Listenerв цикле:
var cssArr = ["f1", "f2", "f3"]; for (var i = 0; i < cssArr.length; i++){ var cssCur = cssArr[i]; var cb = function(){ console.log(cssCur); } window.addEventListener('load', cb); } На выходе хочу получить три Event Listener с тремя различными значениями, но у меня на выходе в консоли всегда три строки "f3". Пробовал делать разными способами, пробовал делать через замыкание, но не получается. Я так понимаю, здесь проблема с областью видимости или я чего-то недопонимаю. Подскажите, в чем именно здесь проблема? |
Alpunto,
Пример ошибочного использования |
Спасибо. Также нашел ответ в книге "Подробное руководство".
Это рабочий код: var cssArr = ["f1", "f2", "f3"]; for (var i = 0; i < cssArr.length; i++){ var cb = createListeners(cssArr[i]); window.addEventListener('load', cb); } function createListeners (cssCur){ return function (){ console.log(cssCur); }; } |
Часовой пояс GMT +3, время: 06:24. |