inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Khóa học trung cấp JavaScript

gọi, áp dụng, ràng buộc

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

318

ycc20182

2 câu hỏi đã được viết

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

Câu trả lời 1

0

ycc20182

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

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

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

수강자료 다운로드 관련 문의

0

11

2

선택정렬 이해하기 & 구현하기

0

5

1

mission12-01 guide.md파일 누락

0

11

1

자료집 관련

0

20

2

13. (App 2) 기본기 훈련 에서

0

29

1

챌린지 시작일 문의

0

33

0

2. 어떤 도구를 사용하는 것이 가장 유리할까? 강의 중

0

27

1

11차시 Antigravity IDE 설치 후

0

30

1

처음 에이전트 설정을 잘못 했을 경우 수정 하는 방법

0

33

1

5,6,7,8 내용이 없어요

0

30

1

ThemeProvider를 이용해서 NextThemeProvider를 따로 생성하여 Layout.tsx에 적용하는 이유는 뭘까요?

0

28

1

mission 09-01 을 수행할 수 없어요

0

32

1

Context API vs Zustand 그리고 Auth

0

38

2

순수 함수 / 순수 컴포넌트

0

25

1

css box-sizing 관련 질문

0

35

2

스니펫이 이상해요

0

34

2

Editor Component의 최적화 불가능 이슈

0

39

2

useCallback ⊂ useMemo

0

38

2

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

1

42

1

nestjs 강의는 없나요??

1

41

2

스타터 저장소

1

44

1

What is Rxjs

0

33

1

심볼 관련 질문

0

279

1

async에서 catch 질문 있습니다.

0

568

2