# 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
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
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- Prototype 에 저장된 속성들은 생성자를 통해서 객체가 만들어질 때 그 객체에 연결된다.
Programmer.prototype = new Person();
이처럼 prototype 속성은 객체와 객체를 연결하는 체인의 역할을 한다.
# Reference
- 생활코딩
← 24. 클래스 26. 에러 핸들링 →