>  기사  >  웹 프론트엔드  >  JavaScript는 이벤트 매개변수가 다른 상황을 해결하기 위해 for 루프에 이벤트를 바인딩합니다_javascript 팁

JavaScript는 이벤트 매개변수가 다른 상황을 해결하기 위해 for 루프에 이벤트를 바인딩합니다_javascript 팁

WBOY
WBOY원래의
2016-05-16 17:03:141086검색

때로는 여러 개의 유사한 이벤트에 응답해야 하는데 각 이벤트의 매개변수가 다릅니다. 처음에는 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는 다음의 함수 지역 변수가 됩니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.