함수의 상위 스코프를 결정하는 두 가지
동적스코프 - 함수를 어디서 호출했는지에 따라 상위 스코프 결정
정적스코프 - 함수를 어디서 선언했는지에 따라 상위 스코프 결정
정적스코프 = 렉시컬스코프 lexical scope
var msg = 'zz';
function log(){ // 함수 선언 순간 가장 가까운 변수 참조
console.log(msg);
}
function outer(){
msg = 'ㅋㅋ';
log();
}
outer(); // ㅋㅋ
var msg = 'rr';
function log(){ // 함수 선언 순간 가장 가까운 변수 참조
console.log(msg);
}
function outer(){
var msg = 'ㄱㄱ';
log();
}
outer(); // rr
전역변수를 지양해야하는 이유이기도 함
전역변수 해결 방법 : 지역 변수로 만들기
'UI개발' 카테고리의 다른 글
자바스크립트 클로저 (0) | 2021.01.08 |
---|---|
네임스페이스 (0) | 2021.01.08 |
자바스크립트 함수표현식 (0) | 2021.01.07 |
자바스크립트 - 콜백의 동기와 비동기 (0) | 2020.08.23 |
이벤트 전파를 중단하는 방법 (0) | 2020.08.23 |