JS 클로저의 기능은 A가 실행되고 반환된 후 Javascript의 가비지 수집 메커니즘이 A가 점유한 리소스를 회수하지 못하도록 방지하는 것입니다. A의 내부 함수 B의 실행은 A의 변수에 의존해야 하기 때문입니다. 클로저를 사용하지 않는 경우 패키지, 함수 B가 실행을 위해 의존하는 변수는 전역 오염을 유발합니다.
폐쇄의 본질
A 집합 S는 Cl(S)=S(여기서는 cl이 폐쇄임)인 경우에만 닫힌 집합입니다. 특히, 공집합의 폐쇄는 공집합이고, X의 폐쇄는 X이다. 집합의 교집합의 종결은 항상 종결 집합의 교집합의 부분집합(반드시 진부분집합일 필요는 없음)입니다. 유한하게 많은 집합의 합집합의 종결은 이들 집합의 종결의 합집합과 동일합니다; 영 집합의 합집합은 공집합이므로 이 명제는 공집합의 종결이라는 이전의 특별한 경우를 포함합니다. 무한 집합의 합집합의 종결은 이러한 집합의 종결의 합집합과 반드시 동일할 필요는 없지만 전자는 후자의 상위 집합이어야 합니다.
A가 S를 포함하는 X의 부분 공간인 경우 A에서 계산된 S의 마감은 에서 A와 S로 계산된 마감의 교차점과 같습니다. 특히 A가 Cl_X(S)의 하위 집합인 경우에만 S는 A에서 조밀합니다.
클로저 예시
개인 변수 시뮬레이션:
function Counter(start){ var count = start; return{ increment:function(){ count++; }, get:function(){ return count; } } } var foo = Counter(4); foo.increment(); foo.get();// 5
여기에서 Counter 함수는 두 개의 클로저, 즉 함수 increment와 get 함수를 반환합니다. 두 함수 모두 외부 범위 Counter에 대한 참조를 유지하므로 이 범위에 정의된 변수 개수에 항상 액세스할 수 있습니다.
추천 튜토리얼: "JavaScript"
위 내용은 JS 클로저의 역할은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!