흥미롭고 중요한 팁 대부분이 이미 언급 된 것 같으므로이 내용은 약간 추가 된 것입니다.
작은 팁은 jQuery.each (object, callback) 함수입니다. 모두가 아마도 jQuery.each (callback)를 사용하고있을 것입니다 함수를 때문에 jQuery 객체 자체를 반복합니다. jQuery.each (object, callback) 유틸리티 함수는 객체와 배열을 반복합니다. 오랫동안, 나는 어떻게 든 다른 구문과 다른 것이 무엇인지 알지 못했고 (모든 구식 루프를 작성하는 것은 중요하지 않습니다), 나는 최근에야 주요 강점을 깨달았습니다.
문제는 jQuery.each (object, callback)의 루프 본문이 함수 이므로 루프에서 매번 새로운 범위 를 얻으 므로 루프 에서 클로저 를 만들 때 특히 편리 합니다.
다시 말해, 일반적인 일반적인 실수는 다음과 같은 일을하는 것입니다.
var functions = [];
var someArray = [1, 2, 3];
for (var i = 0; i < someArray.length; i++) {
functions.push(function() { alert(someArray[i]) });
}
이제 functions
배열 에서 함수를 호출 undefined
하면 원하는 내용이 아닌 내용에 대해 세 번 경고합니다 . 문제는 하나의 변수 i
만 있고 세 개의 클로저 모두 변수를 참조한다는 것입니다. 루프가 완료되면 최종 값 i
은 3이며 someArrary[3]
입니다 undefined
. 클로저를 생성하는 다른 함수를 호출하여이 문제를 해결할 수 있습니다. 또는 기본적으로 jQuery 유틸리티를 사용합니다.
var functions = [];
var someArray = [1, 2, 3];
$.each(someArray, function(item) {
functions.push(function() { alert(item) });
});
이제 함수를 호출하면 예상대로 내용 1, 2 및 3에 대해 세 개의 경고가 표시됩니다.
일반적으로, 그것은 당신이 할 수없는 것이 아니지만 가지고있는 것이 좋습니다.