Здравствуйте, не получается разобраться как работает JS.Я это вижу так,после цикла есть 1 глобальная переменная и на ней отрабатывает addEventListener,разве после того как отработала функция,локальная переменная не затирается?
'use strict';
var buttons = document.querySelectorAll('button');
var addClickListener = function(button) {
button.addEventListener('click', function(evt) {
console.log(button.value);
});
}
for (var i = 0; i < buttons.length; i++) {
var button = buttons[i];
addClickListener(button);
}
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://zeckson.github.io/demo-console/2.2.1/index-silent.min.js"></script>
</head>
<body>
<button value='Я первый!'>Первая кнопка</button>
<button value='Я второй!'>Вторая кнопка</button>
</body>
</html>
addClickListenerв которую вы каждый раз передаете свое значение и создается свой контекст для каждой итерации цикла – Rostyslav Kuzmovych Sep 09 '17 at 17:28