16. 프로토타입
2024. 11. 4. 16:08ㆍ자바스크립트(Javascript)
프로토타입
- 자바스크립트의 모든 객체는 프로토타입이라는 객체를 가지고 있음
- 모든 객체는 프로토타입으로부터 프로퍼티와 프로퍼티 메서드를 상속 받음
- 모든 객체는 최소한 하나 이상의 다른 객체로부터 상속을 받으며, 상속되는 정보를
제공하는 객체, 즉 프로토타입이라고 함
상속
- 클래스 기반의 객체지향 언어와 다름
- 자바스크립트는 프로토타입 기반의 객체지향언어
const dog = new Dog() // Dog.prototype, Object.prototype
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>프로토타입</title>
</head>
<body>
<!--
- 자바스크립트의 모든 객체는 프로토타입이라는 객체를 가지고 있음
- 모든 객체는 프로토타입으로부터 프로퍼티와 프로퍼티 메서드를 상속 받음
- 모든 객체는 최소한 하나 이상의 다른 객체로부터 상속을 받으며, 상속되는 정보를
제공하는 객체, 즉 프로토타입이라고 함
상속
- 클래스 기반의 객체지향 언어와 다름
- 자바스크립트는 프로토타입 기반의 객체지향언어
const dog = new Dog() // Dog.prototype, Object.prototype
-->
<script>
function Dog(color, name, age){
this.color = color
this.name = name
this.age = age
}
const Rucy = new Dog(`흰색`, `루시`,`15`)
console.log(Rucy) // Dog {color: '흰색', name: '루시', age: '15'}
console.log(`이름 : ${Rucy.name}`) // 이름 : 루시
console.log(`색상 : ${Rucy.color}`) // 색상 : 흰색
console.log(`나이 : ${Rucy.age}`) // 나이 : 15
Rucy.family = `포메`
Rucy.getFamily = function(){
return this.family
}
console.log(`종 : ${Rucy.family}`) // 종 : 포메
console.log(`getFamily: ${Rucy.getFamily()}`) // getFamily: 포메
const PPomi = new Dog(`흰색`, `뽀미`, 6)
console.log(`이름 : ${PPomi.name}`) // 이름 : 뽀미
console.log(`색상 : ${PPomi.color}`) // 색상 : 흰색
console.log(`나이 : ${PPomi.name}`) // 나이 : 뽀미
console.log(`종 : ${PPomi.family}`) // 종 : undefined
console.log(`-----------------------`)
Dog.prototype.owner = `김사과`
Dog.prototype.run = function(){
return this.name + `달립니다`
}
console.log(`Rucy 소유자: ${Rucy.owner}`) // Rucy 소유자: 김사과
console.log(`PPomi 소유자: ${PPomi.owner}`) // PPomi 소유자: 김사과
console.log(`Rucy run: ${Rucy.run()}`) // Rucy run: 루시달립니다
console.log(`PPomi run: ${PPomi.run()}`) // PPomi run: 뽀미달립니다
</script>
</body>
</html>
728x90
LIST
'자바스크립트(Javascript)' 카테고리의 다른 글
18. String 객체 (0) | 2024.11.04 |
---|---|
17. Math 객체 (0) | 2024.11.04 |
15. 클래스 (3) | 2024.11.02 |
14. 객체 (0) | 2024.11.02 |
13. 화살표 함수 (0) | 2024.11.02 |