자 바스 크 립 트 의 패키지
for(var i=0; i<agroup.length; i++) {
agroup[i].onclick = function() {
handler(i);
}
}
실행 결 과 는 분명 합 니 다.그 렇 죠?handler 에서 과 거 를 전달 하 는 매개 변수 i 를 가 져 옵 니 다.당신 이 본 것 은 모두 가장 큰 아래 표 시 됩 니 다.이때 우 리 는 보통 아래 의 방법 으로 해결 합 니 다
for(var i=0; i<agroup.length; i++) {
agroup[i].i = i
agroup[i].onclick = function() {
handler(this.i);
}
}
그러면 여기 서 this 의 지향 문 제 를 먼저 말씀 드 리 겠 습 니 다.일반적으로 자바 script 중의 this 는 앞에서 그의 대상 을 인용 하 는 것 을 가리 키 고 있 습 니 다.위 에서 우 리 는 this 에 i 라 는 속성 을 추 가 했 습 니 다.그의 값 은 현재 의 아래 값 입 니 다.그렇다면 폐쇄 적 인 방식 으로 이 문 제 를 어떻게 해결 할 것 인가?사실은 원리 가 같 습 니 다.우 리 는 i 값 을 미리 저장 하거나 전달 이 라 고 불 러 야 합 니 다
for(var i=0; i<agroup.length; i++) {
agroup[i].onclick = function(index) {
return function() {
handler(index);
}
}(i);
}
이때 당신 은 정확 한 하 표를 얻 을 수 있 습 니 다.이렇게 하 는 것 은 i 속성 을 증가 하 는 것 과 어떤 공통점 이 있 습 니까?즉,그들 은 모두 아래 표 시 된 i 값 을 미리 전달 하거나 저장 하 는 것 이다.위의 프 리 젠 테 이 션 에서 onclick 이 인용 한 함 수 를 미리 실행 합 니 다.이 함수 에서 내장 함 수 를 되 돌려 자원 이 방출 되 지 않 은 스 택 구역 을 형성 하고 미리 실행 할 때 i 값 을 매개 변수 로 이 역할 영역 에 전달 합 니 다(해석 능력 에 문제 가 있 습 니 다.이 설명 이 정확 한 지 모 르 겠 습 니 다.벽돌 촬영 을 환영 합 니 다).다시 말 하면 폐쇄 적 인 역할 은 역할 영역 을 바 꾸 거나 미리 집행 하 는 것 이다.위 에서 제시 한 예 는 한계 가 있 고 폐쇄 적 인 응용 범위 가 넓 으 며 그 인 과 를 이해 해 야 유연 하 게 사용 할 수 있다 는 것 을 잘 알 아야 한다.auntion 2011-11-15 mail [email protected] 82874972 오리지널 글,타자 의 노고 와 작가 의 권익 을 존중 하고,전재 시 이곳 의 작가 정 보 를 삭제 하지 마 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.