오늘은 여러 블로그에서 여러 글에서 봤었는데 공부하기가 귀찮아 미루던 Closure에 대해서 소개드리겠습니다!


내부함수와 그 함수가 선언될 때의 렉시컬 환경(Lexical Environment)의 조합입니다.
사전적 의미로 Closure은 폐쇄라는 의미인데 Closure의 핵심은 스코프를 이용해 변수의 접근 범위를 폐쇄하는 것입니다.
Closure의 특징들을 말해보자면
외부에서 내부는 불가능하지만 내부에서 외부로 스코프 접근이 가능합니다.
외부 함수가 반환된 후에도 이 접근이 유지됩니다.
내부함수란?
다른 함수 내부에 정의된 함수
렉시컬 환경
함수가 선언될 때 생성되는 환경으로 해당 함수의 스코프에 있는 모든 변수와 함수를 포함
function external() {
const message = "Hi"; // 외부 함수의 변수
return function internal(name) { // closure 변수
return message + name; // 외부 변수와 받은 네임 합쳐서 return 해주기
}
}
let greeting = external();
console.log(greeting("Bae")); // "Hi Bae"
오늘은 Closure 함수에 대해서 알아보았는데 더 깊이 알고 좋은 코드를 작성할 수 있게 된 것 같아 좋았습니다.
글을 읽어주셔서 감사합니다.
| javascript로 사과게임을 만들어보자! (5) | 2025.01.08 |
|---|---|
| [JavaScript] Shadow DOM이란 뭘까? (4) | 2024.11.26 |
| package.json? package-lock.json? 무슨 차이일까? (3) | 2024.11.10 |
| [코딩 테스트] (제일 작은 수 제거하기) 나의 첫 코딩 테스트 트러블 슈팅!! ⚽(+ shift, sort, pop, splice, Math.min) (3) | 2024.09.28 |
| [JavaScript] Cropper.js가 뭘까? ✂️ (8) | 2024.09.11 |