인프런 커뮤니티 질문&답변

yus님의 프로필 이미지
yus

작성한 질문수

코어 자바스크립트

데이터 타입

함수를 값으로 할당할 때

해결된 질문

작성

·

372

2

자바스크립트에서 함수는 표현식으로 변수에 할당할 수 있어서

값으로 평가 될 수 있다고 알고 있습니다.

 

강의에서 배열이나 객체에 대한 예시를 설명해 주셔서 이해를 했는데,

 

문득 함수의 경우는 어떻게 이루어지는지 궁금해 졌습니다.

 

const outerFunc = function (){
    let b = 1;
    let c = 2;
    const innerFunc = function(){
        console.log("inner function")
    }
}

예를들어 위와같이 있다고 할 때,

초기화 단계에서 outerFunc 변수가 생성되고 undefined로 초기화 된 후에,

  1. 리터럴로 선언된 함수가 그 자체로 들어있다가, 함수 호출 시에 (실행시에) 컨텍스트를 생성하며 함수 내부에 선언한 변수들이 생성, 주소 할당 등의 과정이 이루어지는지,

  2. 아니면 변수나 객체가 생성되는 것과 마찬가지로 내부에 있는 b, c 변수들이 메모리에 할당되고 주소값을 참조하는 과정까지 이루어 진 후, outerFunc 변수에 함수객체의 주소를 가리키도록 생성되는지

위 두가지 중 어떻게 동작하는지가 혼동됩니다..

답변 1

1

정재남님의 프로필 이미지
정재남
지식공유자

함수 자체를 하나의 '값'으로 평가합니다.
1번이 맞습니다.

yus님의 프로필 이미지
yus

작성한 질문수

질문하기