πŸ“š [JavaScript] 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°

이가은·2022λ…„ 5μ›” 8일
0

JavaScript

λͺ©λ‘ 보기
13/13

πŸ“• 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°

μ’€ 더 λ‚˜μ€ ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€κΈ° μœ„ν•œ ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„μœΌλ‘œ λ‘œμ§μ„ μƒνƒœμ™€ ν–‰μœ„λ‘œ 이루어진 객체둜 λ§Œλ“œλŠ” 것

πŸ“™ 클래슀

객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ νŠΉμ • 객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜μ™€ λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•˜λŠ” μΌμ’…μ˜ ν‹€λ‘œ 객체λ₯Ό μ •μ˜ν•˜κΈ° μœ„ν•œ μƒνƒœ(멀버 λ³€μˆ˜)와 λ©”μ†Œλ“œ(ν•¨μˆ˜)둜 κ΅¬μ„±λœλ‹€

🎈 예제

<script>
class User {
	constructor(name) {
		this.name = name;
	}

	sayHi() {
		alert(this.name + " Hi");
	}
}

let user = new User("kaeun"); //μƒˆλ‘œμš΄ 객체 생성
//λ„˜κ²¨λ°›μ€ μΈμˆ˜μ™€ ν•¨κ»˜ constructorκ°€ μžλ™μœΌλ‘œ μ‹€ν–‰λ˜κ³ , μ΄λ•Œ 인수 "kaeun"이 this.name에 ν• λ‹Ήλœλ‹€
user.sayHi(); //"kaeun Hi"λΌλŠ” μ•ŒλžŒμ΄ λœ¬λ‹€
</script>

πŸ“’ 상속

μƒˆλ‘œμš΄ ν΄λž˜μŠ€μ—μ„œ κΈ°μ‘΄ 클래슀의 λͺ¨λ“  ν”„λ‘œνΌν‹°μ™€ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” 것

🎈 예제

<script>
class Animal {
	constructor(name) {
		this.speed = 0;
		this.name = name;
	}
	run(speed) {
		this.speed = speed;
		alert(`${this.name}κ°€ 속도 ${this.speed}둜 λ‹¬λ¦½λ‹ˆλ‹€.`);
	}
	stop() {
		this.speed = 0;
		alert(`${this.name}κ°€ λ©ˆμ·„μŠ΅λ‹ˆλ‹€.`);
	}
}

class Dog extends Animal { //Dog ν΄λž˜μŠ€κ°€ Animal 클래슀λ₯Ό μƒμ†λ°›λŠ”λ‹€
	hide() {
		alert(`${this.name}κ°€ μˆ¨μ—ˆμŠ΅λ‹ˆλ‹€!`);
	}
	stop() { //λ©”μ†Œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ”©
		super.stop(); //λΆ€λͺ¨ 클래슀의 stop 호좜 -> 멍멍이가 λ©ˆμ·„μŠ΅λ‹ˆλ‹€.
		this.hide() //멍멍이가 μˆ¨μ—ˆμŠ΅λ‹ˆλ‹€!
	}
}

let dog = new Dog("멍멍이");
dog.run(8); //멍멍이가 속도 8둜 λ‹¬λ¦½λ‹ˆλ‹€.
dog.stop(); //멍멍이가 λ©ˆμ·„μŠ΅λ‹ˆλ‹€. 멍멍이가 μˆ¨μ—ˆμŠ΅λ‹ˆλ‹€!
</script>

βœ” 클래슀 상속을 μ‚¬μš©ν•˜λ©΄ 클래슀λ₯Ό λ‹€λ₯Έ 클래슀둜 ν™•μž₯ν•  수 있고, 기쑴에 μ‘΄μž¬ν•˜λ˜ κΈ°λŠ₯을 ν† λŒ€λ‘œ μƒˆλ‘œμš΄ κΈ°λŠ₯을 λ§Œλ“€ μˆ˜λ„ μžˆλ‹€
βœ” β€˜extends’ ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄μ„œ μƒμ†ν•œλ‹€

profile
κ°€λΏ‘μ΄μ˜ 곡뢀 μƒμžπŸ“¦

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보