# Prototype

함수의 생성자.

function Person(name){
    this.name = name;
    this.introduce = function(){
        return 'My name is '+this.name; 
    }   
}
const p1 = new Person('egoing');
document.write(p1.introduce()+"<br />");
 
const p2 = new Person('leezche');
document.write(p2.introduce());
1
2
3
4
5
6
7
8
9
10
11

Person, 수퍼 프로토타입. 객체의 프로토타입 정의

function Person(name){
    this.name = name;
}
Person.prototype.name = null;
Person.prototype.introduce = function(){
    return 'My name is ' + this.name; 
};
1
2
3
4
5
6
7

Programmer, 서브 프로토타입,

function Programmer(name){
    this.name = name;
}
// Programmer.prototype.constructor = Programmer

Programmer.prototype = new Person();    // Person 프로토 타입을 상속
// 혹은
// Programmer.prototype = Object.create(Person.prototype);

Programmer.prototype.coding = function(){
    return "hello world";
};
 
var p1 = new Programmer('egoing');
document.write(p1.introduce()+"<br />");
document.write(p1.coding()+"<br />")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  • Prototype 에 저장된 속성들은 생성자를 통해서 객체가 만들어질 때 그 객체에 연결된다. Programmer.prototype = new Person(); 이처럼 prototype 속성은 객체와 객체를 연결하는 체인의 역할을 한다.

# Reference

  • 생활코딩