• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

프로토타입 예제에서 궁금한게 있습니다.

21.01.06 00:17 작성 조회수 131

0

제가 이해한 것은

const person1 = new Person('mike') 를 하면

현재 person1은 Person.prototype을 참조하는게 되고

나중에 Person.prototype = newPrototype; 을 실행하게되면서 person2가 결국 Person.prototype의 이름을 가져가게되는것 같은데...그러면 person1은 예전 함수가 Person.prototype 이름 말고 무엇을 가지게되나요???

헷갈리네요 제가 잘못 이해한것일까요.. ㅠ 질문도 잘 이해되게 썻는지 모르겟네요

답변 2

·

답변을 작성해보세요.

0

황민철님의 프로필

황민철

질문자

2021.01.07

답변 감사드립니다. 강의 잘 들었습니다!

0

안녕하세요
`Person.prototype = newPrototype;` 을 실행하는 순간
Person.prototype 는 이미 변한거구요
이후에 `new Person(...)` 으로 생성한 객체는 모두 newPrototype 를 가리킵니다
다만 
newPrototype 를 할당하기 전에 생성된 객체는 newPrototype 가 아니라 이전의 프로토타입 객체를 참조하구요

Person.prototype 를 변경해도 이전에 생성한 객체의 프로토타입 체인은 변하지 않는다고 이해하시면 될 것 같아요