때로는 여러 개의 유사한 이벤트에 응답해야 하는데 각 이벤트의 매개변수가 다릅니다. 처음에는 for 루프를 사용하는 것이 매우 간단하다고 생각했지만 알고 보니 마지막 매개변수가 사용되었습니다. . . .
온라인으로 정보를 확인해보세요! ! ! 결과적으로 마스터는
코드를 해결하기 위해 클로저를 사용한다고 말했습니다.
for(var i=0;ibtns[i].onclick=(function(i){
return function() {alert(i)}
} )(i)
}
아마도 이유는 btns[i].onclick=function(){alert(i)}가 직접 사용하면 JavaScript 엔진은 먼저 for 루프의 코드를 실행 후 변환합니다.
사용자가 onclick 이벤트를 시작하면 JavaScript는 i를 찾고 작업이 완료된 후 결과는 i가 됩니다. 이는 10
하지만 클로저로 처리하면 i는 다음의 함수 지역 변수가 됩니다.