• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

class 상속 구현 강의 질문 있습니다.

20.08.01 15:35 작성 조회수 137

0

강의의 6:11 때의 그림을 보다가 문득 궁금한 점이 생겼습니다.
현재 강의에서는 Bridge 라는 객체를 사용하는데,
그냥 Employee.prototype = Person.prototype 를 해주면 되는 거 아닌가요??  아니면 혹시 어떤 차이점이 있기 때문에 Bridge를 쓰신건가요? 

답변 2

·

답변을 작성해보세요.

7

Person의 메서드를 상속받으면서
Employee만의 고유 메서드를 추가/변경하고자 하는 것이
'클래스 상속'의 목적입니다.

어떤 변수 또는 프로퍼티에 객체를 할당할 경우,
해당 변수 또는 프로퍼티에는 원본 객체를 '참조복사'한 값이 할당됩니다.

그러니까 Employee.prototype에 Person.prototype을 대입하면
prototype는 객체이기 때문에, Employee.prototype에는 Person.prototype이 참조복사 됩니다.

이후에는 복사본 또는 원본 중 어느 쪽의 내용을 추가/변경/삭제하더라도 양쪽 모두에 결과가 반영됩니다.
즉 Person.prototype 객체와 Employee.prototype 객체가 완전히 동일한 객체가 되는 것입니다.

따라서 Employee의 인스턴스는 Person의 인스턴스와 결과적으로 똑같은 기능을 하게 됩니다.
상속(상위클래스/하위클래스)의 관계가 아닌,
완전히 동일한 메서드를 지닌 채 생성자만 다른 동등한 레벨의 클래스가 되는 것이죠.

0

식빵님의 프로필

식빵

질문자

2020.08.06

5번째 쯤 읽었을 때 이해가 됐고 제가 크게 착각했다는 걸 알았습니다. 좋은 답변 정말 감사합니다 😊