Open YeonjuOHYE opened 4 years ago
자바스크립트엔 인스턴스로 만들 클래스란 개념 자체가 x 오직 객체만 있다. 그리고 객체는 다른 객체에 복사되는게 아니라 서로 연결된다.(cf.프로토타입)
믹스인이란
Car에 Vehicle에서 복사한 프로퍼티와 함수 사본이 있음 (원본 함수를 가르키는 레퍼런스만 복사)
Vehicle.drive.call(this)
▶︎다형성 재고 같은 코드를 명시적 의사다형성이라고 함 (cf. 상대적 다형성 - inherited:drive)
자바스크립트는 상대적 다형성 제공하지 x => 절대적인 레퍼런스를 이용해야 한다.
명시적 의사다형성의 단점
▶︎사본 혼합 복사가 끝나면 Car는 Vehicle과 별개로 움직인다. 함수는 완전 복사 되지 않고 공유됨.
=> 명시적 믹스인 사용하지 말고 6장의 작동위임을 써라
▶︎기생 상속 명시적/암시적 속성 모두 가진다. 부모 클래스인 Vehicle의 정의를 복사하고 자식 클래스 정의에 믹스인한 뒤 조합된 객체 car를 자식 인스턴스로 넘긴다.
?? 이게 뭐가 좋지
Something.cool.call(this) 처럼 함수를 빌려오는 것 => 관리하기 어려워서 왠만하면 사용하지 마라.
4.4 믹스인
자바스크립트엔 인스턴스로 만들 클래스란 개념 자체가 x 오직 객체만 있다. 그리고 객체는 다른 객체에 복사되는게 아니라 서로 연결된다.(cf.프로토타입)
믹스인이란
4.4.1 명시적 믹스인
Car에 Vehicle에서 복사한 프로퍼티와 함수 사본이 있음 (원본 함수를 가르키는 레퍼런스만 복사)
▶︎다형성 재고 같은 코드를 명시적 의사다형성이라고 함 (cf. 상대적 다형성 - inherited:drive)
자바스크립트는 상대적 다형성 제공하지 x => 절대적인 레퍼런스를 이용해야 한다.
명시적 의사다형성의 단점
▶︎사본 혼합 복사가 끝나면 Car는 Vehicle과 별개로 움직인다. 함수는 완전 복사 되지 않고 공유됨.
=> 명시적 믹스인 사용하지 말고 6장의 작동위임을 써라
▶︎기생 상속 명시적/암시적 속성 모두 가진다. 부모 클래스인 Vehicle의 정의를 복사하고 자식 클래스 정의에 믹스인한 뒤 조합된 객체 car를 자식 인스턴스로 넘긴다.
?? 이게 뭐가 좋지
4.4.2 암시적 믹스인
Something.cool.call(this) 처럼 함수를 빌려오는 것 => 관리하기 어려워서 왠만하면 사용하지 마라.