해결된 질문
작성
·
372
2
자바스크립트에서 함수는 표현식으로 변수에 할당할 수 있어서
값으로 평가 될 수 있다고 알고 있습니다.
강의에서 배열이나 객체에 대한 예시를 설명해 주셔서 이해를 했는데,
문득 함수의 경우는 어떻게 이루어지는지 궁금해 졌습니다.
const outerFunc = function (){
let b = 1;
let c = 2;
const innerFunc = function(){
console.log("inner function")
}
}
예를들어 위와같이 있다고 할 때,
초기화 단계에서 outerFunc 변수가 생성되고 undefined로 초기화 된 후에,
리터럴로 선언된 함수가 그 자체로 들어있다가, 함수 호출 시에 (실행시에) 컨텍스트를 생성하며 함수 내부에 선언한 변수들이 생성, 주소 할당 등의 과정이 이루어지는지,
아니면 변수나 객체가 생성되는 것과 마찬가지로 내부에 있는 b, c 변수들이 메모리에 할당되고 주소값을 참조하는 과정까지 이루어 진 후, outerFunc 변수에 함수객체의 주소를 가리키도록 생성되는지
위 두가지 중 어떻게 동작하는지가 혼동됩니다..