JavaScript/JS 초급&개념
[JS] 7장. 자바스크립트 상속 패턴
개발자엄지희
2023. 6. 13. 21:51
반응형
(1) 기본 패턴
기본 패턴: 생성자의 정의를 안해서 문제
kid.say를 하면 Adam이 나옴
(2) 생성자 빌려쓰기
생성자 빌려쓰기: 프로토타입 연결이 안됨
function Child(name) {
Parent.apply(this, arguments)
}
class Child extends Parent {
constructor() {
super();
}
} // 와 유사
// kid.say를 못함
(3) 생성자 빌려쓰고 프로토타입 지정
생성자 빌려쓰고 프로토타입 지정: 괜찮지만 Parent 너무 많이 호출
function Child(name) {
Parent.apply(this.arguments);
}
Child.prototype = new Parent();
부모가 계속 new가 됨
(4) 프로토타입 공유
프로토타입 공유: 단점은 자식이나 손자뻘 객체가 프로토타입을 수정할 경우, 모든 부모와 손자뻘의 객체가 영향을 받음
function inherit(C, P) {
C.prototype = P.prototype;
}
(5) 임시 생성자
function inherit(C, P) {
var F = function() { }
F.prototype = P.prototype;
C.prototype = new F();
C.prototype.constructor = C; // 원하는 생성자 함수를 가리키도록 재설정
}
반응형