var val = 1;
function func1() {
console.log(val);
}
function func2() {
var val = 100;
func1();
}
func2();
100이 출력될 것 같지만,
func1, func2는 모두 동일한 수준의 scope를 가지기 때문에
출력결과는 1이고, scope는 모두 전역 객체만 가지고 있다.
반대로 아래와 같은 경우는
var val = 1;
function func2() {
var val = 100;
function func1() {
console.log(val);
}
func1();
}
func2();
100이 출력되고,
func1이 func2 scope를 하나 더 가지고 있는 것을 확인할 수 있다.
(전역 객체를 뒤지기 전에, func2를 먼저 확인)
'Dev- > java script, jQuery, Ajax' 카테고리의 다른 글
자바스크립트 클로저 (0) | 2019.05.11 |
---|---|
자바스크립트 this 바인딩 (0) | 2019.05.11 |
자바스크립트 생성자 함수 패턴(생성자 강제) (0) | 2019.05.01 |
자바스크립트 객체 생성방법 new Object() vs 객체 리터럴({}) vs 생성자 함수 (1) | 2019.05.01 |
var, let, const 차이 (0) | 2019.05.01 |