Jun 개발노트

JS 상속구현

February 13, 2020

자바스크립트 상속 구현

// Person 객체(like class)
var person = {
name: "jun",
getName: function() {
    return this.name;
},
setName: function(arg) {
    this.name = arg;
}
};
// 함수객체를 생성해 함수의 부모를 들어오는 들어오는 인자값으로 설정 하여 그 자식 함수를 리턴
function create_object(o) {
function F() {}
F.prototype = 0;
return new F();
}
// 상속
function extend(obj, prop) {
// if 조건절은 인자가 하나만 들어오는 경우
if (!prop) {
    prop = obj;
    //prop의 들어온 인자(객체)를 넣고
    obj = this;
    // obj를 현 객체의 this(현재 window)
}
// prop에서 기능을 하나씩 꺼내서 obj 객체에 기능을 넣어주기
// 확장이 된다.
for (var i in prop) {
    obj[i] = prop[i];
}
return obj;
}
// 객체생성
var student = create_object(person);
// 함수 추가용 객체
var added = {
setAge: function(age) {
    this.age = age;
},
getAge: function() {
    return this.age;
}
};
//extend 함수를 통해 student 객체에 added에 구현된 함수들을 상속
extend(student, added);

//함수 객체 안에 setAge가 있다
student.setAge(25);
// 함수 객체 안에 변수 age에 접근하여 반환
console.log(student.getAge());

Written by Junho You 배운것을 기록하자