inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 중급 강좌

call, apply, bind

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

307

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

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

0

14

2

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

1

20

1

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

0

19

1

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

0

15

0

깃권한요청드립니다

0

20

1

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

0

22

1

강의자료

0

32

1

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

0

33

0

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

0

39

1

[46강] EventEmitter를 활용한 10가지 패턴 중 플러그인 아키텍처

0

36

2

강의가 누락된것 같습니다.

0

44

2

용어 발음법이 계속 바뀌는 것 같은데 이런 부분들 개선이 가능할까요...?

0

53

1

counter01.html은 어디있을까요?

1

18

1

존재하지 않는 일기 url입력 시 alert이 두 번 떠요

0

44

1

useState 직접 구현 부분에서 질문이 있습니다.

1

46

1

학습을 하고 블로그에 정리를 해도 괜찮을까요?

1

45

1

교재(3쇄)와 강의 내용 문의

0

39

2

섹션2번 부분 강의 화면이 잘 못된것 같아서 문의합니다.

0

24

1

call stack 표현이 잘못표현된것이 아닌가요?

0

83

2

React 와 Virtual DOM 의 이야기 영상 실행이 안됩니다.

0

35

1

일반 강의와 차이점?

1

59

1

!= 연산자의 역할

0

36

1

심볼 관련 질문

0

270

1

async에서 catch 질문 있습니다.

0

554

2