var value = "value1";

function printValue() {
return value;
}


function printFunc(func) {
var value = "value2";
console.log(func());

}

printFunc(printValue);



이거 실행결과가 value1 인데.. 도통 왜 그런지 모르겠다.


1. printFunc 가 실행되면서 실행 컨텍스트가 하나 생김, (하지만 printValue는 아직 실행되지 않은 거지?)


2. printFunc 내에서 printValue가 실행되면서 또 하나 생김 ( 이 때 printValue 실행 컨텍스트가 생기는거 아님? )


그럼 당연히 상위 컨텍스트의 스코프 체인을 참조하면서 value2가 찍혀야 되는데 내가 말한 가정이 아니라면


1 번에서 printValue가 실행 된다는건가? 알려죠..