this가 무엇인가요?

0

기술면접 - JS

목록 보기
4/18

this가 무엇인가요?

JavaScript에서 this실행 컨텍스트(Execution Context) 내에서 현재 실행 중인 객체를 참조하는 특별한 키워드입니다. this의 값은 실행 환경과 함수 호출의 방식에 따라 동적으로 결정됩니다.

this의 규칙

this의 동작은 다음과 같은 규칙을 따릅니다:

  1. 전역 컨텍스트(Global Context):

    • 전역 컨텍스트에서 this는 전역 객체인 window를 참조합니다. 브라우저 환경에서는 window 객체가 전역 객체로 동작합니다.
    • Node.js 환경에서는 전역 객체인 global을 참조합니다.
  2. 함수 컨텍스트(Function Context):

    • 함수 내에서 this는 호출 방식에 따라 결정됩니다.
    • 일반 함수 호출: 함수를 일반적인 방식으로 호출할 때 this는 전역 객체(window 또는 global)를 참조합니다. 'strict mode'에서는 thisundefined가 됩니다.
    • 메소드 호출: 객체의 메소드로 함수를 호출할 때 this해당 메소드가 속한 객체를 참조합니다.
    • 생성자 함수 호출: new 키워드를 사용하여 생성자 함수로 객체를 생성할 때 this는 새로 생성된 객체를 참조합니다.
    • call() 또는 apply() 메소드: call() 또는 apply() 메소드를 사용하여 함수를 호출할 때 this는 첫 번째 인자로 전달된 객체를 참조합니다.
    • 화살표 함수: 화살표 함수는 자신만의 this를 갖지 않고, 외부 스코프의 this를 상속받습니다.

this는 동적으로 결정되므로, 같은 함수라도 다른 컨텍스트에서 호출될 경우 this의 값이 달라질 수 있습니다. 주의해야 할 점은 함수의 this를 명시적으로 바인딩하기 위해 bind(), call(), apply() 메소드를 사용할 수 있습니다.

this를 올바르게 이해하고 사용하면 객체지향 프로그래밍과 함수의 다양한 호출 방식을 더 잘 다룰 수 있습니다.

profile
지치지 않는 백엔드 개발자 김성주입니다 :)

0개의 댓글

관련 채용 정보