JavaScript에서는 내부 함수가 포함된 외부 함수 외부에서 내부 함수가 호출되면 클로저가 형성됩니다. 클로저는 함수가 반환될 때 리소스를 해제하지 않는 스택 영역입니다. 함수가 반환될 때 활성화되는 함수 변수입니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
클로저에 대한 공식적인 설명은 다음과 같습니다. 많은 변수가 있는 표현식(일반적으로 함수)과 이러한 변수에 바인딩된 환경이므로 이러한 변수도 표현식의 일부입니다.
클로저의 특징:
1. 함수 변수에 대한 참조로 함수가 반환될 때 활성화됩니다.
2. 클로저는 함수가 반환될 때 리소스를 해제하지 않는 스택 영역입니다.
간단히 말하면 JavaScript는 내부 함수의 사용을 허용합니다. 즉, 함수 정의와 함수 표현식은 다른 함수의 함수 본문에 위치합니다. 또한 이러한 내부 함수는 모든 지역 변수, 매개 변수 및 해당 함수가 존재하는 외부 함수에 선언된 기타 내부 함수에 액세스할 수 있습니다.
이러한 내부 함수 중 하나가 이를 포함하는 외부 함수 외부에서 호출되면 클로저가 형성됩니다.
function closure(){ var str = "I'm a part variable."; return function(){ alert(str); } } var fObj = closure(); fObj();
위 코드에서 str은 함수 클로저에 정의된 지역 변수입니다. 클로저 함수 호출이 완료된 후 str에 더 이상 접근할 수 없으면 함수 실행이 완료된 후 str이 해제됩니다.
하지만 함수 클로저가 내부 함수를 반환하고 반환된 함수가 str 변수를 참조하기 때문에 클로저 함수가 실행된 후에 str이 참조될 수 있으므로 str이 차지하는 리소스는 재활용되지 않습니다. 이 폐쇄는 폐쇄를 형성합니다.
관련 권장 사항: javascript 학습 튜토리얼
위 내용은 자바스크립트는 언제 클로저를 형성하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!