본문 바로가기

개발/Javascript

Javascript Closure (클로저)

Javscript Closure(클로저)란?

독립적인 변수를 가리키는 함수

 

 

Closure (클로저)의 원리

함수A가 존재하고, 함수 A에서 선언된 1이라는 변수가 존재, 또한 함수 A 내부에 B라는 내부함수가 존재하고 B라는 내부함수에서 A함수에서 선언된 1이라는 변수를 참조, 이때 내부함수 B가 외부로 전달될 경우, A의 실행이 종료되어도 변수 1이 사라지지 않는다.

~~ A의 실행이 종료되어도 변수 1이 사라지지 않는다 -> 사이드 이펙트

실행이 종료되어도 사라지지 않는다는 것은 메모리에 계속 남아있음을 뜻하고 이는 메모리 누수 현상이 발생할 수 있음을 뜻함, 또한 메모리에 계속 남아있기에 필요에 의해 참조가 가능

메모리 누수란?

프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상

 

 

Closure (클로저)를 사용하는 이유

  • 불필요한 전역변수의 선언을 막아준다.
  • private 변수를 사용하고 싶을 때 이용된다.

 

 

Closure (클로저) 사용의 단점

  • 메모리 누수 현상이 발생할 수 있다.
  • 새로운 Scope를 생성하여 내부 함수에 링크시키기에, function 자체의 스코프가 종료되기까지 내부함수가 메모리에 남아있어 퍼포먼스 손해 감수 -> 내부 함수에 링크시키기 때문에, function 자체의 스코프가 종료되기까지 내부함수가 메모리에 남아있어 퍼포먼스 손해 감수

'개발 > Javascript' 카테고리의 다른 글

Vite + React + tailwind CSS  (0) 2024.12.03
NPM 배포하기  (0) 2024.04.14
Javascript Hoisting(호이스팅)  (0) 2024.04.08
Webpack(웹팩) 설정하는 법  (0) 2024.04.08