this는 자바스크립트 객체 내부에서 자기 자신을 가리킬때 사용하는 키워드이다.

지금 콘솔창에 console.log(this)를 입력하면 window객체가 출력되는것을 확인할 수 있을것이다.

다음 코드를 살펴보자.

1
2
3
4
5
6
7
8
let elephant = {
    name : 'jane',
    gender : 'female',
    yearOfBirth : 2010,
    calculateAge : function(){
    console.log(2019 - this.yearOfBirth);
    }
}
cs

elephant.calculateAge()를 실핼하면 9가 출력된다.

그렇다면 메소드 함수의 this.yearOfBirth가 elephant.yearOfBirth라는것을 알 수 있다.

위 객체와 같은 메소드를 가진 eagle 객체가 있다고 가정하자.

eagle.calculateAge = elephant.calculateAge 후 eagle객체의 함수를 실행시켜보면 eagle 객체의 메소드가 적용되어 작동하는것을 확인 할 수 있을것이다.

주의할 점은 객체 내부에 선언되었더라도 메소드로 선언되지 않을 경우, this는 window 객체를 가리키게 되므로 반드시 메소드로 선언했을 경우에 사용 가능하다.

+ Recent posts