JavaScript
Result
Run
License
var arr = [0, 1, 2, 3]; var count = 0; // forEach() 메소드의 인수가 함수로써 싫행 컨텍스트(context)가 형성되어 변수 a는 값을 유지한다. arr.forEach(function(item) { var a = ++count; document.addEventListener("click", function() { console.log(a); }); }); // for문에서 반복 처리는 함수가 아닌 관계로 변수 a는 반복후의 최종 값을 갖는다. for(let i = 0; i < arr.length; i++) { var b = ++count; document.addEventListener("click", function() { console.log(b); }); } // for문에서 반복 처리시 IIFE(즉시 실행 함수)에 의해서 실행 컨텍스트(context)가 형성되므로 변수 c는 값을 유지한다. for(let i = 0; i < arr.length; i++) { var c = ++count; (function(c) { document.addEventListener("click", function() { console.log(c); }); })(c) }
Console
expand_less
License
License
by DevDic
Close