JavaScript에서 동적으로 생성 된 "a"태그의 onclick 이벤트에 함수를 할당하려고했습니다. 모든 태그는 다음과 같이 루프로 작성됩니다.루프 (다른 함수를 반환)의 함수는 어떻게 작동합니까?
for (var i = 0; i < 4; i++)
{
var a = document.createElement("a");
a.onclick = function() { alert(i) };
document.getElementById("foo").appendChild(a);
}
네 개의 링크 모두에 대한 경고 값은 항상 "4"입니다. 꽤 분명해. 인터넷 검색을 할 때 나는 다음과 같은 코드 조각을 보여줍니다 게시물 건너 온 :
a.onclick = (function(p, d) {
return function(){ show_photo(p, d) }
})(path, description);
내 요구를 조정할 관리 및 경고 (전) 일이 제대로 작동있어하지만 누군가가 정확하게 설명 할 수 있다면 감사 할 것 위 코드가하는 일.
안녕 :
나는 폐쇄 (그리고 curry의 아주 기본적인 개념)를 설명하기 위해 다음 코드를 사용하여, 나는 간단한 예는 개념을 얻을 쉽게 만들 수 있다고 생각 경고 "4"? "2"가 아니어야합니까? 감사. – Tarik
for (var i = 0; i <3; i ++)는 끝에서 i == 4를 남깁니다. –
아니요, 3을 그대로 남겨 둡니다. –