상속

객체 = 변수 + 메소드;

상속은 객체의 로직을 그대로 물려받는 또 다른 객체를 만들 수 있는 기능을 의미한다. 기존의 로직을 수정하고 변경해서 파생된 새로운 객체를 만들 수 있게 해준다.

function person(name) {
    this.name = name;
    this.introduce = function() {
        return 'My name is '+this.name;
    }
}
var p1 = new person('egoing');//객체를 생성하는 생성자.
document.write(p1.introduce()+"<br />");

아래의 코드는 위의 실행결과와 똑같은 결과를 출력한다.

function person(name) {
    this.name = name;
}
person.prototype.name = null;
person.prototype.introduce = function() {
        return 'My name is '+this.name;
}
var p1 = new person('egoing');//introduce 메소드가 실행된다.
document.write(p1.introduce()+"<br />");

상속의 사용 방법

생성자를 prototype에 할당하면 된다.

function person(name) {
    this.name = name;
}
person.prototype.name = null;
person.prototype.introduce = function() {
        return 'My name is '+this.name;
}
function programmer(name) {
    this.name = name;
}
programmer.prototype = new person();//상속.생성자가 객체를 생성해서 할당.

var p1 = new programmer('egoing');
document.write(p1.introduce()+"<br />");

상속:기능의 추가

function person(name) {
    this.name = name;
}
person.prototype.name = null;
person.prototype.introduce = function() {
        return 'My nickname is '+this.name;
}
function programmer(name) {
    this.name = name;
}
function designer(name) {
    this.name = name;
}

designer.prototype = new person();
designer.prototype.design = function(){
    return "beautiful!";
}

programmer.prototype = new person();//상속.생성자가 객체를 생성해서 할당.
programmer.prototype.coding = function(){
    return "hello world";
}

var p1 = new programmer('egoing');
document.write(p1.introduce()+"<br />");
document.write(p1.coding()+"<br />");

var p2 = new designer('leezche');
document.write(p2.introduce()+"<br />");
document.write(p2.design()+"<br />");

Last updated