본문 바로가기
javaScript

중첩 함수 안에서 this

by mooyou 2023. 8. 9.
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

댓글