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 |
댓글