인프런 커뮤니티 질문&답변

황민철님의 프로필 이미지
황민철

작성한 질문수

실전 자바스크립트

프로토타입 2

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

작성

·

170

0

제가 이해한 것은

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

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

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

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

답변 2

0

황민철님의 프로필 이미지
황민철
질문자

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

0

이재승님의 프로필 이미지
이재승
지식공유자

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

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

황민철님의 프로필 이미지
황민철

작성한 질문수

질문하기