inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 중급 강좌

call, apply, bind

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

316

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가 활용됩니다.

Context API vs Zustand 그리고 Auth

0

17

2

순수 함수 / 순수 컴포넌트

0

15

1

css box-sizing 관련 질문

0

28

2

스니펫이 이상해요

0

26

2

Editor Component의 최적화 불가능 이슈

0

37

2

useCallback ⊂ useMemo

0

33

2

깃허브 저장소를 어디에 첨부하셨나요?

1

36

1

nestjs 강의는 없나요??

1

36

2

스타터 저장소

1

39

1

What is Rxjs

0

26

1

라이브러리 설치 질문

0

33

2

linter 질문

0

38

2

수업자료 링크 접속했는데 404에러 뜹니다 ㅠ

1

43

1

primitive에 onClick 이벤트가 안되는 경우

0

28

2

감정일기장 vercel 배포 후 새로 고침 시 404페이지가 뜨는 이유

0

40

2

자료실

1

39

2

Sort 메서드 관련 아티클

0

42

2

4.1) React.js를 소개합니다 강의를 듣고 궁금한 점이 생겼습니다.

0

42

2

html, body에 적용하는 css 스타일 질문입니다.

0

38

2

html / css 기초는 있습니다..

0

50

2

모든 컴포넌트를 클라이언트 컴포넌트로 했을 때

0

31

3

ReactScriptExample 관련 질문

0

40

1

심볼 관련 질문

0

279

1

async에서 catch 질문 있습니다.

0

567

2