Не работает замыкание 
		
		
		
		Есть код который ставит алерты на кнопки: 
	for (var i = 0; i < button.length; i++) button[i].onclick = function () { alert(i); } Если его переписать: for (var i = 0; i < button.length; i++) button[i].onclick = function (i) { alert(i); } то вместо последнего i выводит obeject mouseevent почему так?  | 
	
		
 Цитата: 
	
 Но у тебя нет замыкания. Цитата: 
	
 А вот пример замыкания... 
for (var i = 0; i < button.length; i++)
button[i].onclick = (function (N) {
   return function(){alert(N);};
})(i);
 | 
	
		
 Цитата: 
	
 
<button id="button">Нажми Alt+Shift+Click на мне!</button>
<script>
  button.onclick = function(event) {
    if (event.altKey && event.shiftKey) {
      alert('Ура!');
    }
  };
</script>
https://learn.javascript.ru/mouse-events-basics Только у тебя вместо event - i...  | 
	
		
 А почему так и должно быть? Почему поведение функции так меняется из переданного аргумента? 
	 | 
	
		
 И действительно помогло. Из-за одного let всё встало на свои места. Интересно почему? 
	 | 
	
		
 Rise, вот он поменял var на let и всё. А во времена до let, это заставило бы его разобраться как таки устроен js и как с ним правильно работать, что помогло бы сильно в будущем. Эх. 
	jsdump, совет, идете в учебник на этом сайте и перечитывайте главу про замыкания до тех пор пока не въедите, иначе постоянно будете спотыкаться.  | 
	
		
 Цитата: 
	
 Значит самое время начать читать учебник по JS... Одну из ссылок я тебе уже дал выше. ;)  | 
	
		
 Цитата: 
	
 https://javascript.ru/tutorial/event...-sobytie-event Цитата: 
	
 Просто ты не знаешь основ обработки событий, потому все, что происходит кажется тебе загадкой...  | 
	
		
 Почему не работает код: 
	
var i=0;
{
let i=-5;
for (var i; i < button.length; i++){}
alert(i);
}
alert(i);
Разве нельзя объявлять var после let?  | 
	
		
 Цитата: 
	
 Правда не факт что она потом будет работать... Какой тайный смысл ты хотел реализовать объявлением переменой с тем же именем в var, после let?  | 
	
		
 Цитата: 
	
 Цитата: 
	
  | 
	
		
 jsdump, начни уже читать букварь... :cray: 
	 | 
| Часовой пояс GMT +3, время: 11:14. |