작성
·
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 를 변경해도 이전에 생성한 객체의 프로토타입 체인은 변하지 않는다고 이해하시면 될 것 같아요