-
[JavaScript] 클로저JavaScript 2024. 1. 17. 10:24반응형
클로저(Closure)는 함수와 해당 함수가 선언된 렉시컬 스코프(Lexical Scope) 사이의 관계를 나타내며,
함수가 정의될 때의 환경(스코프)을 기억하고, 함수가 호출될 때 그 환경을 사용할 수 있도록 하는 개념입니다.
주로 함수 내부에서 함수를 정의하고, 내부 함수가 외부 함수의 변수에 접근할 때 효과가 나타납니다.
이 성질을 통해 내부 함수로부터 외부함수의 변수에 접근할 수 있다.
function outerFunc(x){ function innerFunc(y){ return x + y; } return innerFunc; } let closure = outerFunc(10); //외부함수의 변수 x를 10으로 설정 let result = closure(5); //내부함수의 변수 y를 5로 설정 console.log(result); // 결과 : 15 closure = outerFunc(22); result = closure(33); console.log(result); // 결과 : 55
위 예제에서 closure란 변수명으로 outerFunc 함수의 x값을 설정하고
이 설정된 값을 내부함수를 통해 접근한 예제이다.
outerFunc의 x와 innerFunc의 y값은 오직 선언 당시에만 조작할 수 있는 모습을 알 수 있다.
이러한 클로저의 이러한 특성을 통해 함수 내부에서 선언된 값을 외부에서 접근할 수 없도록 통제하여 변수값의 임의변경으로부터 보호할 수 있다는 것을 알 수 있었다.
반응형'JavaScript' 카테고리의 다른 글
[JavaScript] 스크롤바 위치감지 이벤트 (0) 2024.04.01 [Javascript] 이중배열을 filter로 조건에 해당하는 것 추출하기 (0) 2023.10.27 [JavaScript] 입력받은 데이터가 Date 타입인지 체크 (0) 2023.07.09 [JavaScript] node.js를 이용한 간단한 WEB SCRAPER만들기 (0) 2023.05.13 [JavaScript] IndexedDB 기초사용법 (0) 2023.04.16