본문 바로가기
javaScript

메서드 에서의 this

by mooyou 2023. 8. 27.
728x90
300x250

 

var value=10;
// 클래스 정의
function Execute() {
    // 프로퍼티 정의
    this.value=0;
}

// 메서드 정의
Execute.prototype.method1=function(){
    this.value=20;
    value=30; //method1()내부에서 먼저 찾고 없으면 전역변수에서 찾는다.

    console.log("1. value = "+value);
    console.log("2. this.value = "+this.value);
    console.log("3. window.value = "+window.value);
}

// 인스턴스 생성
var ex1 = new Execute();
// 메서드 호출
ex1.method1();

/*
 실행결과
 1. value = 30
 2. this.value = 20
 3. window.value = 30
 */

 

메서드에서의 this는 객체 자신을 말한다. 이에 따라 2. this.value = 객체 자신의 value이기 때문에 20이 된다.

value는 처음에 method1() 내부에서 찾지만 정의된 게 없기 때문에 전역에서 찾는다.

따라서 위 예제의 1번과 3번의 값은 같다.

728x90
반응형

'javaScript' 카테고리의 다른 글

상황에 따른 this 값  (0) 2023.08.29
메서드 내부의 중첩 함수에서의 this  (0) 2023.08.28
이벤트 리스너 안에서 this  (0) 2023.08.11
중첩 함수 안에서 this  (0) 2023.08.09
javaScript call() 메서드  (0) 2023.08.08

댓글