// prototype 상속// 자바스크립트에는 클래스의 개념을 제공하지 않는다.// 상속을 통해 중복되는 코드는 부모클래스에 정의하고 자식클래스에 상속시키자.//부모클래스function Parent() {this.a = 10;this.b = 100;this.c = "홍길동";this.d = "이순신";}Parent.prototype.parentMethod = function() {console.log(this.a);console.log("부모클래스 메서드");}//------------------------------------------------------------------------------------------//자식클래스Afunction ChildA(){}//Parent 상속 // 상속을 통해 상위 프로토타입으로 연속해서 이어지는 관계 (프토토타입 체인)ChildA.prototype = new Parent();ChildA.prototype.childMethod = function() { //childMethodconsole.log("A클래스메서드")}//------------------------------------------------------------------------------------------//자식클래스Bfunction ChildB(){}//Parent 상속ChildB.prototype = new Parent();ChildB.prototype.childMethod = function() { //childMethodconsole.log("B클래스메서드")}//------------------------------------------------------------------------------------------//객체생성var child_a = new ChildA();var child_b = new ChildB();//프로퍼티 메서드 접근console.log(child_a.c); //'홍길동'child_a.parentMethod(); //'부모클래스 메서드'child_a.childMethod(); //'A클래스메서드'console.log(child_b.d); //'이순신'child_b.parentMethod(); //'부모클래스 메서드'child_b.childMethod(); //'B클래스메서드'
// 객체리터럴을 통한 상속var Parent = {a : 10,b : 20,c : "홍길동",d : "이순신"}// Parent 객체의 맴버들이 obj객체에 prototype에 연결된다.var obj = Object.create(Parent);console.log(obj);
반응형
'JavaScript' 카테고리의 다른 글
[JavaScript] 자바스크립트 렉시컬(Lexical) 특성 (0) | 2016.01.18 |
---|---|
[JavaScript] 자바스크립트 arguments객체로 메서드 오버로딩 흉내내기 (0) | 2016.01.18 |
[JavaScript] 자바스크립트 빈 오브젝트 체크 (0) | 2016.01.14 |
[JavaScript] 자바스크립트 문자열 합치기 팁 - 배열 join (0) | 2016.01.14 |
[JavaScript] Object.keys, json Object 반복문 돌리기 for...in 문 (0) | 2015.11.16 |