1. 폐쇄란 무엇인가
클로저, 클로저에 대한 공식적인 설명은 다음과 같습니다. 많은 변수가 있는 표현식(보통 함수)과 이러한 변수에 바인딩된 환경이므로 이러한 변수도 표현식의 일부입니다.
간단히 말하면 Javascript는 내부 함수의 사용을 허용합니다. 즉, 함수 정의와 함수 표현식이 다른 함수의 함수 본문에 위치합니다. 또한 이러한 내부 함수는 모든 지역 변수, 매개변수 및 해당 함수가 존재하는 외부 함수에 선언된 기타 내부 함수에 액세스할 수 있습니다. 이러한 내부 함수 중 하나가 이를 포함하는 외부 함수 외부에서 호출되면 클로저가 형성됩니다.
폐쇄의 특징
1개의 함수 중첩 함수
2 외부 매개변수 및 변수는 함수 내부에서 참조 가능
3 매개변수와 변수는 가비지 수집 메커니즘에 의해 재활용되지 않습니다
일반 함수 실행 후 로컬 활성 객체는 소멸되고 전역 범위만 메모리에 저장됩니다. 그러나 폐쇄의 상황은 다릅니다!
function fn(){ var a = ; function fn(){ //可以访问fn中定义的a值 alert( a++ ); } fn(); } fn(); // fn(); // function fn(){ var a = ; function fn(){ //可以访问fn中定义的a值 alert( a++ ); } return fn;// } var f = fn(); f(); // 执行完后a还在内存中 f(); // f = null; //a被回收
이상은 JavaScript의 클로저에 대한 편집자의 소개입니다. 도움이 되길 바랍니다!