YeonjuOHYE / javascript

0 stars 0 forks source link

유돈노 #part2#4) 클래스와 객체의 혼합 #17

Open YeonjuOHYE opened 4 years ago

YeonjuOHYE commented 4 years ago

4.4 믹스인

자바스크립트엔 인스턴스로 만들 클래스란 개념 자체가 x 오직 객체만 있다. 그리고 객체는 다른 객체에 복사되는게 아니라 서로 연결된다.(cf.프로토타입)

믹스인이란

4.4.1 명시적 믹스인

Car에 Vehicle에서 복사한 프로퍼티와 함수 사본이 있음 (원본 함수를 가르키는 레퍼런스만 복사)

Vehicle.drive.call(this) 

▶︎다형성 재고 같은 코드를 명시적 의사다형성이라고 함 (cf. 상대적 다형성 - inherited:drive)

자바스크립트는 상대적 다형성 제공하지 x => 절대적인 레퍼런스를 이용해야 한다.

명시적 의사다형성의 단점

▶︎사본 혼합 복사가 끝나면 Car는 Vehicle과 별개로 움직인다. 함수는 완전 복사 되지 않고 공유됨.

=> 명시적 믹스인 사용하지 말고 6장의 작동위임을 써라

▶︎기생 상속 명시적/암시적 속성 모두 가진다. 부모 클래스인 Vehicle의 정의를 복사하고 자식 클래스 정의에 믹스인한 뒤 조합된 객체 car를 자식 인스턴스로 넘긴다.

?? 이게 뭐가 좋지

4.4.2 암시적 믹스인

Something.cool.call(this) 처럼 함수를 빌려오는 것 => 관리하기 어려워서 왠만하면 사용하지 마라.