위 코드는 왜 1을 출력합니까?
foo()가 실행된 후 이것이 출력됩니다. foo()의 getName이 전역 함수 표현식이 되나요? 그리고 다음 var getName도 함수 표현식입니다.
foo, 실행 후 다음 코드와 동일합니까?
Foo가 호출되지 않을 때
Foo()를 부를 때
호출 후 return this in Foo는 창을 가리키므로 최종 결과는 1입니다.
return this
으아악
Foo().getName()은 Foo에서 getName을 실행합니다
으아악 으아악
console.log(Foo())를 확인하세요. 확실히 window인가요?
Foo 함수의 getName은 var로 선언되지 않아 전역이므로 Foo가 실행되면 함수 내부의 getName 함수가 외부에 정의된 함수를 덮어쓰게 됩니다
Foo가 호출되지 않을 때
으아악Foo()를 부를 때
으아악호출 후
return this
in Foo는 창을 가리키므로 최종 결과는 1입니다.으아악
Foo().getName()은 Foo에서 getName을 실행합니다
으아악 으아악
console.log(Foo())를 확인하세요. 확실히 window인가요?
Foo 함수의 getName은 var로 선언되지 않아 전역이므로 Foo가 실행되면 함수 내부의 getName 함수가 외부에 정의된 함수를 덮어쓰게 됩니다