본문 바로가기
도서로 공부하는 프로그래밍/코딩 자율학습

[JS] 클로저 개념과 사용 사례

by 열공노년 2024. 4. 24.
반응형

클로저란?

클로저는 함수가 자신이 생성될 때의 환경을 "기억"하게 하는 자바스크립트의 특성입니다. 내부 함수가 외부 함수의 변수에 접근할 수 있도록 해주며, 외부 함수가 종료된 후에도 해당 변수를 사용할 수 있게 합니다.

클로저 사용 사례

다음 코드에는 클로저의 사용 예가 나타나 있습니다.

클로저 사용 사례


greeting 함수는 메시지를 인자로 받아, who라는 내부 함수를 반환합니다. who 함수는 또 다른 인자 name을 받고, greeting 함수의 인자와 함께 콘솔에 인사말을 출력합니다. 이때 who 함수는 greeting 함수의 스코프에 있는 msg 변수에 접근합니다.

 

var hello = greeting("안녕하세요!"); 코드는 hello라는 변수에 greeting 함수로부터 반환된 who 클로저를 저장합니다. 이 클로저는 msg"안녕하세요!"로 설정된 상태를 기억합니다.

 

hello("홍길동"); 호출은 "홍길동님, 안녕하세요!"를 출력하고, hello("김철수"); 호출은 "김철수님, 안녕하세요!"를 출력합니다. 여기서 hello는 클로저로써 msg에 저장된 값을 기억하고 있습니다.

 

var howdy = greeting("잘 지내시나요?"); 코드는 howdy라는 또 다른 클로저를 생성하고, 이 클로저는 msg"잘 지내시나요?"로 설정된 상태를 기억합니다.

 

howdy("홍길동"); 호출은 "홍길동님, 잘 지내시나요?"를 출력합니다.

 

정리

이 코드는 클로저가 외부 함수의 지역변수(msg)를 어떻게 "기억"하는지를 보여주는 좋은 예입니다. 각각의 클로저는 greeting 함수 호출 시에 전달된 다른 인사말을 기억하고 있습니다. 이는 클로저가 독립적인 상태를 유지할 수 있음을 보여줍니다.

반응형