돌아가기

bind를 적용한 함수의 프로퍼티

중요도: 5

함수 프로퍼티에 값을 하나 할당해봅시다. 이 함수에 bind 메서드를 적용하면 프로퍼티 값은 바뀔까요? 그렇다면 혹은 그렇지않다면 그 이유는 무엇일까요?

function sayHi() {
  alert( this.name );
}
sayHi.test = 5;

let bound = sayHi.bind({
  name: "John"
});

alert( bound.test ); // 얼럿 창엔 어떤 값이 출력될까요? 값이 나온 이유는 무엇일까요?

정답: undefined

bind를 적용하면 또 다른 객체가 반환됩니다. 새로운 객체엔 test 프로퍼티가 없으므로 undefined가 출력됩니다.