이제 앞서 작성해본 subClass 함수를 사용해서, 실제로 상속을 실행하는 예제 코드를 만들어 보겠습니다.
function subClass(obj) {
var parent = this === window ? Function : this;
var F = function() {};
var child = function() {
var _parent = child.parent;
if(_parent && _parent !== Function) {
_parent.apply(this, arguments);
}
if(child.prototype._init) {
child.prototype._init.apply(this, arguments);
}
};
F.prototype = parent.prototype;
child.prototype = new F();
child.prototype.constructor = child;
child.parent = parent;
child.subClass = arguments.callee;
for(var i in obj) {
if(obj.hasOwnProperty(i)){
child.prototype[i] = obj[i];
}
}
return child;
}
var person_obj = {
_init : function() {
console.log("person init");
},
getName : function() {
return this._name;
},
setName : function(name) {
this._name = name;
}
};
var student_obj = {
_init : function() {
console.log("student init");
},
getName : function() {
return "Student Name: " + this._name;
}
};
var Person = subClass(person_obj); // Person 클래스 정의
var person = new Person(); // person init
person.setName("RAPPER");
console.log(person.getName());
var Student = Person.subClass(student_obj); // 자식 클래스 Student 정의
var student = new Student(); // person init, student init
student.setName("JAY PARK");
console.log(student.getName());
'Programming > Javascript' 카테고리의 다른 글
14. Javascript 함수형 프로그래밍(2) - 함수형 프로그래밍 기본 (0) | 2023.01.18 |
---|---|
14. Javascript 함수형 프로그래밍(1) - 개념 (0) | 2023.01.16 |
13. Javascript 객체지향 프로그래밍(5) - subClass 구현하기 4 (0) | 2023.01.10 |
13. Javascript 객체지향 프로그래밍(5) - subClass 구현하기 3 (0) | 2023.01.05 |
13. Javascript 객체지향 프로그래밍(5) - subClass 구현하기 2 (0) | 2023.01.03 |