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

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

328

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

강의제목에 10/15일 삭제라고 나와있는데,

0

23

1

스크립트 영상 미일치

0

64

3

감정일기장 다이어리 필터 적용할때 컨텍스트를 Home에서 가져오는 특별한 이유가 궁금합니다.

0

50

2

강의 설명 중에 헷갈리는 것이 있네요

0

45

1

수업자료 관련 문의

0

62

3

1강 동영상 재생 오류

1

65

2

Composition단계에서 `Layer`는 누가 만드는지

0

38

1

Strict Mode 예시 질문!

0

58

2

수업이 안보여요

0

62

1

저자 블로그에 있는 강의는 어떤 강의인가요?

1

60

1

[해결됨]윈도우즈 환경에서 타입 스크립트 파일이 실행이 안됩니다.

1

81

5

4강 카드뉴스 자동화 자료가 안보입니다!!

0

101

2

윈도우즈 환경에서 진행중입니다.

0

59

2

4강 카드뉴스 자동화 자료

6

118

1

라이브 강의 영상 녹화본이 있을까요?

0

96

1

인증이 늦었습니다ㅜㅜ 확인부탁드립니다

0

86

1

스웨거 접속이 안되는데 확인 부탁드립니다.

0

60

1

설명이 잘못된거같습니다.

1

70

2

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

0

100

2

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

0

58

1

mission12-01 guide.md파일 누락

0

73

2

자료집 관련

0

63

2

심볼 관련 질문

0

295

1

async에서 catch 질문 있습니다.

0

581

2