JS closure

wony·2022년 4월 14일
0

closure

외부함수 안에 내부함수가 있는 경우
javaScript의 유효범위 체인을 이용하여 이미 생명 주기가 끝난 외부 함수의 변수를 참조하는 방법입니다
외부 함수가 종료되더라도 내부함수가 실행되는 상태면 내부함수에서 참조하는 외부함수는 닫히지 못하고 내부함수에 의해서 닫히게 되어 클로저라 불리 웁니다.
따라서 클로저란 외부에서 내부 변수에 접근할 수 있도록 하는 함수입니다.

function aaa(){
    function bbb(){
        console.log("안녕하세욤")
    }
}
    

aaa()

function aaa(){
    return function bbb(){
        console.log("안녕하세욤")
    }
}
    

aaa()

ƒ bbb(){
        console.log("안녕하세욤")
    }
aaa()()

VM324:3 안녕하세욤

(aaa())()
VM324:3 안녕하세욤

여기서 aaa함수안에 있는 함수 bbb의 이름은 전혀 상관이 없다 어짜피 함수는 aaa가 실행될 것이기 때문이다

스코프체인에 의해 내부함수에서 외부함수의 지역변수가 실행되는데 지역변수가 담겨있는 이 영역을 클로져라고 부른다

profile
무럭무럭 성장중🌿

0개의 댓글