[javascript] this 연산자

예를 들어, 다음과 같은 객체가 있다고 가정해봅시다.

const person = {
  firstName: "John",
  lastName: "Doe",
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
};

그럼 person.fullName()을 호출하면, thisperson 객체를 가리킵니다. 즉, this.firstNameperson 객체의 firstName 속성을 참조하고, this.lastNameperson 객체의 lastName 속성을 참조합니다.

함수가 일반적인 방법으로 호출되면(예: functionName()), this는 전역 객체를 가리키게 됩니다. 하지만 strict mode에서는 전역 객체를 가리키지 않고 undefined가 됩니다.

Arrow 함수에서는 this가 함수가 정의된 시점에서 결정되며, 상위 스코프의 this를 가져옵니다.

this의 동작은 가변적이므로 주의 깊게 사용해야 합니다. 잘못된 사용은 예상치 못한 동작을 일으킬 수 있습니다.