작성
·
191
1
마지막 부분에 바로 fn();을 하면 this.name을 하지 못해 오류가 나는데, 왜 let fn으로 할당을 할 때 this가 지워지는 지 궁금합니다.
답변해주시면 감사하겠습니다.
답변 1
0
let fn = user.showName; 으로 받게 되면
showName 이 가리키는 함수 functon()도 fn이 받게 됩니다.
그러면 이 function()함수 안에 있는 this.name에서 this는 fn 자체를 가리키게 됩니다. fn에는 name에 대한 정보가 없기 땜누에 typeerror가 발생합니다. 따라서, this를 user로 할당시켜 줘야하기 때문에 call, apply, bind가 활용됩니다.