inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 중급 강좌

call, apply, bind

마지막 부분에 질문 있습니다.

296

ycc20182

작성한 질문수 2

1

const user = {
    name:"Mike",
    showName: function(){
        console.log(`hello, ${this.name}`);
    },
};

let fn = user.showName;
// this가 지워진다. 왜??
// 왜 바로 fn()하면 this.name이 발동이 안되지?
// fn(); // error. Cannot read properties of undefined (reading 'name')

마지막 부분에 바로 fn();을 하면 this.name을 하지 못해 오류가 나는데, 왜 let fn으로 할당을 할 때 this가 지워지는 지 궁금합니다.

답변해주시면 감사하겠습니다.

javascript

답변 1

0

ycc20182

let fn  = user.showName; 으로 받게 되면

showName 이 가리키는 함수 functon()도 fn이 받게 됩니다.

그러면 이 function()함수 안에 있는 this.name에서 this는 fn 자체를 가리키게 됩니다. fn에는 name에 대한 정보가 없기 땜누에 typeerror가 발생합니다. 따라서, this를 user로 할당시켜 줘야하기 때문에 call, apply, bind가 활용됩니다.

에러 질문드립니다

0

3

1

1강 질문

0

19

2

윈도우에서는동작줄이기가어디에있을까요??

0

14

0

백오피스를 개발할 때 아키텍처 구성에 대한 질문

0

29

2

ai가 만든 강의인가요?

0

66

1

VSCode 설정 문의

0

40

2

PPT 코드 관련 질문

0

34

2

state 객체로 묶기

0

33

1

몽고 db 접속 오류

0

20

1

3강 질문

0

57

2

74. 데이터 캐시 - 1 (이론) 강의 영상 누락

0

41

1

2강 nodejs 3단계 설명 질문

0

62

1

imagesLoaded에 관한 질문

0

25

2

useEffect와 lifecycle문의

0

42

2

프론트엔드 학습 수준 문의

0

60

2

리액트 챕터별 코드에서 eslint 설정파일이 없어요

0

56

2

최근 코테, 과제 테스트 트렌드

0

96

2

lucide react 아이콘 설치

0

50

2

17강 zustand store 서버에서 생성

1

53

1

문의관련 문의

0

60

2

next.js 를 2대이상 실행하는 경우 제공하는 cache 기능들은 어떻게 되나요?

0

76

2

76. 전문성 더하기: 놓치면 아쉬운 관련 기술들 수업 자료가 없어요.

0

58

2

심볼 관련 질문

0

260

1

async에서 catch 질문 있습니다.

0

538

2