본 튜토리얼은 전 세계 사람들이 이용할 수 있는 오픈 소스 프로젝트입니다. 프로젝트 페이지에 방문하셔서 번역을 도와주세요.
돌아가기

bind를 적용한 함수를 메서드에 정의하기

중요도: 5

아래 코드를 실행하면 어떤 결과가 나올까요?

function f() {
  alert( this ); // ?
}

let user = {
  g: f.bind(null)
};

user.g();

정답: null

function f() {
  alert( this ); // null
}

let user = {
  g: f.bind(null)
};

user.g();

bind를 적용한 함수의 컨텍스트는 완전히 고정됩니다. 한번 고정되면 바꿀 방법이 없습니다.

따라서 user.g()를 실행했음에도 불구하고 기존 함수의 컨텍스트는 null이 되기 때문에 null이 출력됩니다.