728x90
300x250
var value = 10;
function outer() {
function inner(){
this.value = 20;
value = 30;
document.write("1. value = " + value, "<br>");
document.write("2. this.value = " + this.value, "<br>");
document.write("3. window.value = " + window.value, "<br>");
}
inner();
}
outer();
/*
실행결과
1. value = 30
2. this.value = 30
3. window.value = 30
*/
일반 중첩 함수에서도 this는 window가 된다. 즉 this.window와 동일하기 때문에 value에 20이 저장된다.
value=30을 실행할 경우 처음에는 지역변수 내에서 value를 찾고 없으면 inner()함수를 호출한 outer()의 지역변수에서 value를 찾게 된다. 따라서 value=30이 저장된다.
728x90
반응형
'javaScript' 카테고리의 다른 글
메서드 에서의 this (0) | 2023.08.27 |
---|---|
이벤트 리스너 안에서 this (0) | 2023.08.11 |
javaScript call() 메서드 (0) | 2023.08.08 |
일반 함수 안에서 this (0) | 2023.08.06 |
class에서 this (0) | 2023.08.05 |
댓글