클로저는 외부 함수의 실행이 완료된 후에도 내부 함수가 외부(인클로징) 함수의 변수 및 매개변수에 액세스할 수 있는 기본 JavaScript 개념입니다. 간단히 말해서 클로저를 사용하면 함수가 다른 범위에서 실행될 때에도 함수가 외부 범위의 변수에 "기억"하고 액세스할 수 있습니다.
JavaScript의 모든 클로저는 세 가지 범위에 액세스합니다.
기본 예를 통해 어휘 범위 지정을 이해해 보겠습니다.
function init() { var name = "Mozilla"; // local variable created by init function displayName() { // inner function console.log(name); // uses variable declared in parent function } displayName(); } init();
이 예에서는:
종료를 보여주기 위해 약간 수정된 버전을 살펴보겠습니다.
function makeFunc() { const name = "Mozilla"; function displayName() { console.log(name); } return displayName; } const myFunc = makeFunc(); myFunc();
이해해야 할 핵심 사항:
다음은 클로저의 힘을 보여주는 보다 실용적인 예입니다.
function makeAdder(x) { return function(y) { return x + y; }; } const add5 = makeAdder(5); const add10 = makeAdder(10); console.log(add5(2)); // outputs 7 console.log(add10(2)); // outputs 12
현재 상황을 분석해 보겠습니다.
동일한 함수 정의를 공유합니다
하지만 어휘 환경이 다릅니다
add5 환경에서 x는 5입니다
add10 환경에서 x는 10
클로저는 다음을 허용하므로 강력합니다.
클로저는 최신 JavaScript 패턴, 프레임워크 및 라이브러리에서 광범위하게 사용되므로 JavaScript 개발자에게는 클로저를 이해하는 것이 중요합니다. 이는 코드를 깔끔하고 유지 관리 가능하게 유지하면서 개인 변수를 생성하고 함수형 프로그래밍의 상태를 유지하는 방법을 제공합니다.
기억하세요: 클로저는 단지 다른 함수 내부의 함수가 아닙니다. 클로저는 외부 범위에 있는 변수에 액세스할 수 있고 외부 함수 실행이 완료된 후에도 해당 액세스를 유지하는 함수입니다.
위 내용은 JavaScript 클로저 이해: 종합 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!