프로토타입(prototype)
모든 객체는 프로토타입이라는 객체를 가지고 있음
모든 객체는 프로토타입으로부터 프로퍼티와 프로퍼티 메소드를 상속받음
프로토타입은 객체의 부모 객체
모든 객체는 최소한 하나 이상의 다른 객체로부터 상속을 받으며 상속되는 정보를 제공하는 객체를 프로토타입이라고 함
모든 객체는 Object.prototype을 기본으로 가진다.
모든 객체는 Object.prototype의 메서드와 프로퍼티를 상속받는다.
객체에 프로퍼티와 메서드 추가
function Dog(color, name, age){
this.color = color;
this.name = name;
this.age = age;
}
const Kuma = new Dog('brown', '쿠마', 10);
console.log(`이름: ${Kuma.name}`);
console.log(`색상: ${Kuma.color}`);
console.log(`나이: ${Kuma.age}`);
// 객체에 프로퍼티와 메서드 추가
Kuma.family = '포메라니안';
Kuma.getFamily = function(){
return this.family
}
// 객체에 추가된 프로퍼티 메서드 사용
console.log(`종: ${Kuma.family}`);
console.log(`getFamily: ${Kuma.getFamily()}`);
프로토타입에 프로퍼티와 메서드 추가
function Dog(color, name, age){
this.color = color;
this.name = name;
this.age = age;
}
const Kuma = new Dog('brown', '쿠마', 10);
const Obok = new Dog('white', '오복', 16);
console.log(`이름: ${Obok.name}`);
console.log(`색상: ${Obok.color}`);
console.log(`나이: ${Obok.age}`);
Dog.prototype.owner = '김오너';
Dog.prototype.run = function(){
return this.name + ' 달립니다.';
}
console.log(`소유자: ${Kuma.owner}`);
console.log(`run: ${Kuma.run()}`);
console.log(`소유자: ${Obok.owner}`);
console.log(`run: ${Obok.run()}`);
'웹 > JavaScript' 카테고리의 다른 글
[JavaScript] 객체 (0) | 2023.10.30 |
---|---|
[JavaScript] 호이스팅 (0) | 2023.10.29 |
[JavaScript] 함수 (0) | 2023.10.29 |
[JavaScript] 배열 (0) | 2023.10.29 |
[JavaScript] 제어문(조건문, 반복문) (1) | 2023.10.29 |
댓글