[javascript] this 키워드의 역할과 사용법
JavaScript에서 this
키워드는 매우 중요한 역할을 합니다. 이 키워드는 현재 실행 중인 함수나 메서드가 속한 객체를 참조하는 데 사용됩니다.
this
가 가리키는 대상은 실행 컨텍스트에 따라 달라집니다.
this
의 기본 동작
this
의 동작은 실행 컨텍스트에 의해 결정됩니다. 함수가 호출될 때, this
는 해당 함수를 호출한 객체를 참조합니다. 다른 말로 하면, this
는 함수가 속한 객체를 나타내게 됩니다.
this
의 명시적인 바인딩
명시적으로 this
를 바인딩하는 방법에는 call
, apply
, bind
메서드를 사용하는 방법이 있습니다. 이들을 사용하면 this
를 특정 객체에 명시적으로 연결할 수 있습니다.
예를 들어,
const person = {
name: 'Alice',
greet: function() {
console.log(`Hello, ${this.name}!`);
}
};
const bob = { name: 'Bob' };
person.greet.call(bob); // 출력: "Hello, Bob!"
위 예제에서 call
메서드를 사용하여 person
객체의 greet
메서드를 bob
객체에 연결했습니다.
this
를 arrow 함수에서 이해하기
arrow 함수 내에서 사용된 this
는 함수가 정의된 시기의 this
와 동일합니다. arrow 함수는 자신만의 this
를 바인딩하지 않고, 주변 스코프의 this
를 사용합니다.
function Person() {
this.age = 0;
setInterval(() => {
this.age++; // `this`는 Person 객체를 참조
}, 1000);
}
const person = new Person();
결론
JavaScript에서 this
의 동작을 이해하는 것은 중요합니다. 올바른 컨텍스트에서 this
를 올바르게 활용하기 위해, 함수가 호출될 때의 실행 컨텍스트와 명시적인 this
바인딩 방법을 숙지하는 것이 바람직합니다.
이상으로, JavaScript에서의 this
키워드에 대한 소개를 마치도록 하겠습니다.
참고 문헌: