inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[CS 기술면접 7] 말이 트이는 자바스크립트

생성자함수와 프로토타입 - 인스턴스가 메서드를 공유하는 원리

생성자 함수 프로토 타입

해결된 질문

98

이지현

작성한 질문수 1

1

섹션 6-28 생성자함수와 프로토타입에서 슬라이드 39장을 설명할 때, Parent 함수 자체는 객체가 아니라서 __proto__프로퍼티가 없다고 하셨는데, 자바스크립트에서 함수는 객체여서 __proto__프로퍼티가 있지않나요?

javascript 기술면접

답변 2

1

이용준

안녕하세요. 이지현님!
결론부터 말씀드리면 강의 내용이 수정되어야 하는 것이 맞습니다.

자바스크립트의 모든 함수는 일급 객체 취급하기 때문에 객체가 맞고 그에 따라 __proto__ 속성을 갖습니다. 이때 Parent.__proto__Function.prototype을 참조하게 됩니다.

Function.prototypeParent.prototype과는 별개이며

  • Function.prototype은 Parent 함수가 참조하는 프로토타입이고

  • Parent.prototype은 함수를 통해 생성된 인스턴스가 참조하는 프로토타입입니다.

즉, 함수는 누군가의 자식인 동시에 누군가의 부모가 될 수 있는 이중적인 구조를 가집니다.

놓친 부분을 바로 잡아주셔서 감사드립니다. 강의는 수정하여 재업로드하도록 하겠습니다.

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

이지현님이 질문주신 자바스크립트의 함수와 프로토타입에 대한 부분은 자바스크립트의 객체 지향 특성을 이해하는 데 중요한 주제입니다. 자바스크립트에서 함수도 객체이기 때문에, 일반적으로 모든 함수는 __proto__ 프로퍼티를 가지고 있습니다. 이는 함수가 객체라는 것을 나타내며, Function 프로토타입을 가리킵니다.

하지만 강의에서 언급된 “Parent 함수 자체는 객체가 아니라 __proto__ 프로퍼티가 없다”는 설명은 다소 혼란스러울 수 있습니다. 아마도 강사님께서 특정 상황에서의 맥락이나 예외적인 경우를 설명하시면서 발생한 혼란일 수 있습니다. 일반적으로 자바스크립트의 함수는 callable 객체로서 __proto__와 프로토타입 체인에 대한 액세스를 허용합니다.

지금 제기된 질문과 비슷한 주제에 대해 더 상세한 이해를 원하신다면, 다음 게시물을 참고하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

경력 어필에 관하여

0

2

1

자료집 관련

0

11

2

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

0

17

1

챌린지 시작일 문의

0

23

0

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

0

20

1

11차시 Antigravity IDE 설치 후

0

21

1

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

0

19

1

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

0

21

1

이력서의 자기 소개를 그대로 자기소개 할때 핵심 매력으로 소개하면 마이너스 일까요?

1

10

2

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

0

15

1

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

0

25

1

Context API vs Zustand 그리고 Auth

0

38

2

순수 함수 / 순수 컴포넌트

0

24

1

css box-sizing 관련 질문

0

34

2

스니펫이 이상해요

0

32

2

스터디는 매달 열리나요?

0

32

1

디자인패턴 질문

0

32

2

Editor Component의 최적화 불가능 이슈

0

38

2

useCallback ⊂ useMemo

0

38

2

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

1

41

1

nestjs 강의는 없나요??

1

41

2

스타터 저장소

1

43

1

What is Rxjs

0

32

1

라이브러리 설치 질문

0

34

2