
화살표 함수 내에서의 this는 생성되는 객체를 지칭하지 못한다.
함수에서의 this는 그 함수를 호출한 객체이다.
동작 바인딩이란 실행 시점에 함수의 this를 지정할 수 있다는 의미이며, 이 기법을 이용해 함수의 this 역할을 하는 객체를 바꿔서 이용할 수 있다.
this 역할을 하는 객체를 바인딩하여 새로운 함수를 반환 하는 역할을 한다.
❌ 함수 호출하는 것
⭕️ 새로운 함수를 만드는 것
함수명.bind(객체명)
b = a.bind(obj) // obj를 객체로 바인딩하여 b라는 새로운 함수를 만듦
✔️ ex)
let obj = {
name: '홍길동'
}
let sayHello = function() {
console.log('Hello, ${this.name}`)
}
let newSayHello = sayHello.bind(obj)
newSayHello
bind() 는 새로운 함수를 만드는 역할이고, 함수를 호출하는 역할은 아니다.
그렇다면 함수를 호출까지 하려면 어떤 함수를 사용해야할까?