this, binding

유연희·2022년 7월 1일
0

this

this는 현재 실행되는 코드의 실행 컨텍스트를 가리킨다.

Binding이란?

바인딩(Binding)이란 함수 호출과 실제 함수를 연결하는 방법이다. 즉 함수를 호출하는 부분에 함수가 위치한 메모리 번지를 연결시켜 주는 것이다. 자바스크립트에서 함수를 호출 할 때는 암묵적으로 arguments 객체 및 this 변수가 함수 내부로 전달된다.

  const onChangeTitle = (event) => {
    setTitle(event.target.value);
  };
	
제목 : <input type="text" onChange={onChangeTitle} />

Javascript의 this 바인딩

Javascript에서 this는 대부분의 경우 함수를 호출하는 방법에 의해 결정된다.

  1. 전역공간 : window / global
    전역 공간에서의 thissms 브라우저 콘솔은 window, node.js 환경은 global이 됩니다.

  2. 함수 호출 : window / global
    함수는 전역 객체의 메소드이다.

  3. 메소드 호출 : 메소드 호출의 주체
    메소드 호출시 메소드를 호출한 주체가 this가 됩니다.

  4. callback 호출시 : 기본적으로 함수 호출시와 동일
    기본적으로 함수의 this와 같습니다. 하지만 제어권을 가진 함수가 callback의 this를 명시한다면 그에 따릅니다. 또 개발자가 this를 바인딩한 채로 callback을 넘기면 그에 따릅니다. ( call, apply, bind )

  5. 생성자 함수 호출시 : 인스턴스
    생성자 함수를 사용하면 this는 인스턴스가 됩니다.

profile
developer

0개의 댓글