μ’ λ λμ νλ‘κ·Έλ¨μ λ§λ€κΈ° μν νλ‘κ·Έλλ° ν¨λ¬λ€μμΌλ‘ λ‘μ§μ μνμ νμλ‘ μ΄λ£¨μ΄μ§ κ°μ²΄λ‘ λ§λλ κ²
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ νΉμ κ°μ²΄λ₯Ό μμ±νκΈ° μν΄ λ³μμ λ©μλλ₯Ό μ μνλ μΌμ’ μ νλ‘ κ°μ²΄λ₯Ό μ μνκΈ° μν μν(λ©€λ² λ³μ)μ λ©μλ(ν¨μ)λ‘ κ΅¬μ±λλ€
π μμ
<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β ν€μλλ₯Ό μ¬μ©ν΄μ μμνλ€