[javascript] this 연산자
예를 들어, 다음과 같은 객체가 있다고 가정해봅시다.
const person = {
firstName: "John",
lastName: "Doe",
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
그럼 person.fullName()
을 호출하면, this
는 person
객체를 가리킵니다. 즉, this.firstName
은 person
객체의 firstName
속성을 참조하고, this.lastName
은 person
객체의 lastName
속성을 참조합니다.
함수가 일반적인 방법으로 호출되면(예: functionName()
), this
는 전역 객체를 가리키게 됩니다. 하지만 strict mode에서는 전역 객체를 가리키지 않고 undefined가 됩니다.
Arrow 함수에서는 this
가 함수가 정의된 시점에서 결정되며, 상위 스코프의 this
를 가져옵니다.
this
의 동작은 가변적이므로 주의 깊게 사용해야 합니다. 잘못된 사용은 예상치 못한 동작을 일으킬 수 있습니다.