inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 중급 강좌

call, apply, bind

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

312

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

ReactScriptExample 관련 질문

0

11

1

소스코드즘 부탁드립니다.

0

9

1

안녕하세요 한번 더 문의드립니다.

0

49

4

81강 실습 자료 없음

0

38

2

선생님 공유해주신 핸드북에 링크가 몇개 잘못되었어요

0

33

2

62강 실습자료가 잘못되었습니다.

0

32

1

코드 자료는 없는걸까요?

0

65

3

강의 목표

0

37

1

강의 노트 위주로 학습

0

42

1

쿠키 생성 관련

0

69

3

JWT auth error invalid token

0

66

2

경력기술서는 어떤 방향이 좋을까요?

0

54

2

MSA 와 BFF 아키텍처 설명 부분에 대한 문의

1

56

1

eslint.config.js 설정 질문입니다.

0

68

2

7강 흐름 제어 아키택쳐 코드 순서

1

54

1

수업자료 어디서 찾아볼 수 있나요?

0

48

2

함수 강의의 정답.. 어떤가요?

0

42

1

깃권한요청드립니다

0

40

1

<div id="banner">배너 이미지</div> 관련 질문

0

35

1

강의자료

0

43

1

윈도우에서 Node js를 설치하고 싶어요

0

39

0

addToFile function에서 path를 사용해 새로운 파일을 생성

0

48

1

심볼 관련 질문

0

273

1

async에서 catch 질문 있습니다.

0

560

2