ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ํด๋ž˜์Šค์™€ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ์ฐจ์ด
    ์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ 2023. 2. 27. 01:20

    TLDR;

    ํด๋ž˜์Šค์™€ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ์ฐจ์ด

    ํด๋ž˜์Šค๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ณด๋‹ค ์—„๊ฒฉํ•˜๋ฉฐ, ์ƒ์„ฑ์ž ํ•จ์ˆ˜์—์„œ๋Š” ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•œ๋‹ค.

    1. ํด๋ž˜์Šค๋ฅผ new ์—ฐ์‚ฐ์ž ์—†์ด ํ˜ธ์ถœํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ new ์—ฐ์‚ฐ์ž ์—†์ด ํ˜ธ์ถœํ•˜๋ฉด ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ๋œ๋‹ค.
    2. ํด๋ž˜์Šค๋Š” ์ƒ์†์„ ์ง€์›ํ•˜๋Š” extends์™€ super ํ‚ค์›Œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
    3. ํด๋ž˜์Šค๋Š” ํ˜ธ์ด์ŠคํŒ…์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค.
    4. ํด๋ž˜์Šค ๋‚ด์˜ ๋ชจ๋“  ์ฝ”๋“œ์—๋Š” ์•”๋ฌต์ ์œผ๋กœ strict mode๊ฐ€ ์ง€์ •๋˜์–ด ์‹คํ–‰๋œ๋‹ค. ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋Š” ์•”๋ฌต์ ์œผ๋กœ strict mode๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š๋Š”๋‹ค.
    5. ํด๋ž˜์Šค์˜ contructor, ํ”„๋กœํ† ํƒ€์ž… ๋ฉ”์„œ๋“œ, ์ •์  ๋ฉ”์„œ๋“œ๋Š” ๋ชจ๋‘ ํ”„๋กœํผํ‹ฐ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ Enumerable์˜ ๊ฐ’์ด false๋‹ค. ์ฆ‰, ์—ด๊ฑฐ๋˜์ง€ ์•Š๋Š”๋‹ค.

    ์ •์  ๋ฉ”์„œ๋“œ์™€ ํ”„๋กœํ† ํƒ€์ž… ๋ฉ”์„œ๋“œ์˜ ์ฐจ์ด

    1. ์ •์  ๋ฉ”์„œ๋“œ์™€ ํ”„๋กœํ† ํƒ€์ž… ๋ฉ”์„œ๋“œ๋Š” ์ž์‹ ์ด ์†ํ•ด ์žˆ๋Š” ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์ด ๋‹ค๋ฅด๋‹ค. (Class vs ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๊ฐ์ฒด) ๋‹ค์‹œ ๋งํ•ด, ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ–ˆ์„๊ฒฝ์šฐ, ํ”„๋กœํ† ํƒ€์ž… ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ , ์ •์ ๋ฉ”์„œ๋“œ๋Š” class๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
    2. ์ •์  ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค๋กœ ํ˜ธ์ถœํ•˜๊ณ , ํ”„๋กœํ† ํƒ€์ž… ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค๋กœ ํ˜ธ์ถœํ•œ๋‹ค.
    3. ์ •์  ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†์ง€๋งŒ, ํ”„๋กœํ† ํƒ€์ž… ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์ •์  ๋ฉ”์„œ๋“œ๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

    ์ •์  ๋ฉ”์„œ๋“œ๋Š” ์ƒํƒœ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋ฉฐ, ์‘์ง‘๋„๊ฐ€ ๋†’์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์—ญ์—์„œ ์‚ฌ์šฉํ•  ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋ฅผ ์ „์—ญ ํ•จ์ˆ˜๋กœ ์ •์˜ํ•˜์ง€ ์•Š๊ณ  ๋ฉ”์„œ๋“œ๋กœ ๊ตฌ์กฐํ™” ํ•  ๋•Œ ์œ ์šฉํ•œ๋ฐ, ๊ทธ ์˜ˆ์‹œ๋กœ Mathํ•จ์ˆ˜์™€ ๊ฐ™์€ ํ‘œ์ค€ ๋นŒํŠธ์ธ ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค.

    ๋ณธ ๊ธ€์—์„œ๋Š” ํด๋ž˜์Šค์— ๋Œ€ํ•ด์„œ ๋” ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

     


    ๊ฐ์ฒด๋ฅผ ์ผ์ผ์ด ๋งŒ๋“ค์ง€ ์•Š๊ณ  ์†์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹๊ณผ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ๋‹ค.

     

    ์ผ๋ฐ˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์–ด๋ณด๊ธฐ

    function Fruit(name, emoji){
        this.name = name;
        this.emoji = emoji;
        this.display = () => {
            console.log(`${this.name} : ${this.emoji}`)
        }
        // return this; // ์ƒ๋žต ๊ฐ€๋Šฅ
    }
    
    const apple = new Fruit('apple', '๐ŸŒŸ');
    console.log(apple.name); // ์ด๋Ÿฐ ์‹์œผ๋กœ ์ ‘๊ทผ๋„ ๊ฐ€๋Šฅ

     

    ์œ„์—์„œ ๋งŒ๋“  ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์–ด๋ณด๊ธฐ

    class Fruit {
        // ์ƒ์„ฑ์ž(constructor) : new ํ‚ค์›Œ๋“œ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜
        constructor(name, emoji){
            this.name = name;
            this.emoji = emoji;
        }
    
        display = () => {   // function์„ ๋ถ™์ผ ํ•„์š”๊ฐ€ ์—†๋‹ค.
            console.log(`${this.name}: ${this.emoji}`)
        }
    }
    
    // apple์€ Fruit ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์ด๋‹ค.
    const apple = new Fruit('apple', '๐ŸŒŸ');

     

    ์ •์  ๋ฉ”์„œ๋“œ์™€ ํ”„๋กœํผํ‹ฐ

    ์œ„์—์„œ ๋งŒ๋“  ๊ฒƒ์€ ๋ชจ๋‘ ์ธ์Šคํ„ด์Šค ๋ ˆ๋ฒจ์˜ ๋ฉ”์„œ๋“œ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ๋ชจ๋“  ๊ฐ์ฒด๋งˆ๋‹ค ๋™์ผํ•˜๊ฒŒ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•  ์†์„ฑ์ด๋‚˜ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ์ด ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ํด๋ž˜์Šค ๋ ˆ๋ฒจ์˜ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ์ธ ์ •์  ํ”„๋กœํผํ‹ฐ์™€ ์ •์  ๋ฉ”์„œ๋“œ์ด๋‹ค.
    ์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“œ๋ ค๋ฉด staticํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ด๋ฉด ๋œ๋‹ค!

    class Fruit {
        static MAX_FRUITS = 10;
        // ์ƒ์„ฑ์ž(constructor) : new ํ‚ค์›Œ๋“œ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜
        constructor(name, emoji){
            this.name = name;
            this.emoji = emoji;
        }
    
        // ํด๋ž˜์Šค ๋ ˆ๋ฒจ์˜ ๋ฉ”์„œ๋“œ
        static makeRandomFruit() {
            // ํด๋ž˜์Šค ๋ ˆ๋ฒจ์˜ ๋ฉ”์„œ๋“œ์—์„œ๋Š” this๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†์Œ. ๊ทธ๋ƒฅ template์ด๊ธฐ ๋•Œ๋ฌธ
            return new Fruit('banana', '๐Ÿ‘๐Ÿป')
        }
    
        // ์ธ์Šคํ„ด์Šค ๋ ˆ๋ฒจ์˜ ๋ฉ”์„œ๋“œ
        display = () => {   // function์„ ๋ถ™์ผ ํ•„์š”๊ฐ€ ์—†๋‹ค.
            console.log(`${this.name}: ${this.emoji}`)
        }
    }
    
    const banana = Fruit.makeRandomFruit();  // ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด์„œ๋Š” ์ ‘๊ทผ X, ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
    // ๊ทธ๋ฆฌ๊ณ  ๋งŒ๋“ค์–ด์ง„ ์ธ์Šคํ„ด์Šค ์•ˆ์—๋Š” ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ์—†๋‹ค!!

    ์šฐ๋ฆฌ๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” Math, Number๋“ฑ๊ณผ ๊ฐ™์€ ๋นŒํŠธ์ธ ๊ฐ์ฒด๋Š” ์‚ฌ์‹ค static ํ•จ์ˆ˜๋‹ค. ๋”ฐ๋ผ์„œ object๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ , ๊ฐ์ฒด ์•ˆ์— ์ •์˜๋˜์–ด ์žˆ๋Š” ํ•ด๋‹น ํ•จ์ˆ˜๋“ค์„ ์šฐ๋ฆฌ๊ฐ€ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ์ •์  ๋ฉ”์„œ๋“œ๋Š” ๋น„์Šทํ•œ ๋‚ด์šฉ์„ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•  ๋•Œ ํŽธํ•˜๋‹ค.

    Math.pow(); // ์‚ฌ์‹ค ์ด๋Ÿฐ ๊ฒƒ๋“ค์€ static ํ•จ์ˆ˜๋‹ค!
    // object๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค!
    // ๋น„์Šทํ•œ ๋‚ด์šฉ์„ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค!
    
    Number.isFinite(1);

     

    private ํ•„๋“œ์™€ public ํ•„๋“œ

    ์œ„์—์„œ ์ •์ ์œผ๋กœ ๋งŒ๋“  staticํ•จ์ˆ˜๋Š” ์žฌ์ •์˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ์™ธ๋ถ€์—์„œ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. class์—์„œ ํ•œ๋ฒˆ ์ •ํ•˜๋ฉด ์™ธ๋ถ€์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋„๋ก ๋ง‰์•„์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด! ์ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ private ํ•„๋“œ์ด๋‹ค. private์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ํ”„๋กœํผํ‹ฐ๋‚˜ ๋ฉ”์„œ๋“œ ์•ž์— #์„ ๋ถ™์ด๋ฉด ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” private, public, protected๊ฐ€ ์žˆ๋Š”๋ฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—๋Š” ์ด๋Ÿฐ ํ‚ค์›Œ๋“œ๊ฐ€ ์—†๊ณ , ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋ชจ๋‘ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ public์ด ๋œ๋‹ค. ใ„ฑ

    // ์ ‘๊ทผ ์ œ์–ด์ž
    class Fruit {
        #name;        // ์ด๊ฒŒ ํ•„๋“œ์ธ๋ฐ, constructor์•„ ์žˆ์œผ๋ฉด ์ƒ๋žต ๊ฐ€๋Šฅ
        #emoji;
        #type = '๊ณผ์ผ';   // ์ดˆ๊ธฐํ™”๊ฐ€ ๋ฏธ๋ฆฌ ๋˜์–ด์žˆ์Œ
    
        constructor(name, emoji){
            this.#name = name;
            this.#emoji = emoji;
        }
    
        display = () => {   // function์„ ๋ถ™์ผ ํ•„์š”๊ฐ€ ์—†๋‹ค.
            console.log(`${this.name}: ${this.emoji}`)
        }
    }
    
    const apple = new Fruit('apple', '๐Ÿ‘');
    
    apple.#name = '์˜ค๋ Œ์ง€';  // private์ด๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅํ•จ undefined ์ถœ๋ ฅ๋จ

     

    ํด๋ž˜์Šค์—์„œ์˜ Getter && Setter

    ์•„๋ž˜์˜ ์ฝ”๋“œ์—์„œ fullName์„ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด fullName์ด๋ž€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.
    student.fullName() ๊ทธ๋Ÿฐ๋ฐ, ์–ด๋–ค ๊ฐ’, ์ฆ‰ ์ƒํƒœ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฑด๋ฐ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์“ฐ๋Š”๊ฒŒ ์กฐ๊ธˆ ์ด์ƒํ•˜๋‹ค. ๊ทธ๋ƒฅ ํ”„๋กœํผํ‹ฐ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค! ์ด๋Ÿด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ getter ์ด๋‹ค!

    class Student {
        constructor(firstName, lastName){
            this.firstName = firstName;
            this.lastName = lastName;
        }
        fullName(){
            return `${this.lastName} ${this.firstName}`;
        }
    }
    
    const student = new Student('์ˆ˜์ง€', '๊น€');
    console.log(student.firstName);
    console.log(student.fullName()); // ์•„๋‹ˆ ๊ทธ๋Ÿฐ๋ฐ ์ด๊ฑฐ ์‚ฌ์‹ค ์ƒํƒœ์ธ๋ฐ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์“ฐ๋Š”๊ฒŒ ์ข€ ์ด์ƒํ•œ๊ฑฐ ๊ฐ™์•„.

    Getter์™€ Settter๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

    class Student {
        constructor(firstName, lastName){
            this.firstName = firstName;
            this.lastName = lastName;
        }
        get fullName(){
            return `${this.lastName} ${this.firstName}`;
        }
    
        set fullName(value){
            console.log(value);
        }
    }
    
    // ์ด๋ ‡๊ฒŒ getter๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋ฉด, ํ”„๋กœํผํ‹ฐ์ฒ˜๋Ÿผ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!
    
    const student = new Student('์ˆ˜์ง€', '๊น€');
    console.log(student.fullName); // getter ํ˜ธ์ถœ
    student.fullName = '๊น€์ฒ ์ˆ˜';  // setter ํ˜ธ์ถœ

     

    ์ƒ์†(ํ™•์žฅ extends)

    extends๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์–ด๋–ค ํด๋ž˜์Šค์˜ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

    // Animal์ด๋ž€ class๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.
    class Animal {
        constructor(color){
            this.color = color;
        }
        eat() {
            console.log('๋จน์ž!');
        }
        sleep(){
            console.log('์ž”๋‹ค');
        }
    } 
    
    // Tiger๋ผ๋Š” ํด๋ž˜์Šค๋Š” Animal์˜ ์š”์†Œ๋ฅผ ๋ชจ๋‘ ์ƒ์†๋ฐ›๋„๋ก ํ•œ๋‹ค.
    class Tiger extends Animal {}
    const tiger = new Tiger('๋…ธ๋ž‘์ด');
    tiger.sleep(); // ํ™•์žฅํ–ˆ๊ธฐ๋•Œ๋ฌธ์— Animal์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    tiger.eat();
    
    class Dog extends Animal{
         play() {
          console.log('๋†€์ž์•„~~!')
        }
    }
    
    const dog = new Dog('๋นจ๊ฐ•์ด');
    dog.eat();  // ์ƒ์†ํ•œ ๋ฉ”์„œ๋“œ 
    dog.play(); // ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•œ ๋ฉ”์„œ๋“œ
    

    ์œ„ Dog๋ผ๋Š” class๋Š” Animal์„ ์ƒ์†๋ฐ›์€ ํ›„, ์ƒˆ๋กœ์šด ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋งŒ์•ฝ์— ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋งŒ์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? super๋กœ ๋ถ€๋ชจ๊บผ๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„, ์ž์‹  ๊บผ๋ฅผ ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

    class Cat extends Animal{
         constructor(color, ownerName){
             super(color); // ๋ถ€๋ชจ๊บผ ๊ฐ€์ ธ์˜ด
              this.ownerName = ownerName;
        }
    
      // ์˜ค๋ฒ„๋ผ์ด๋”ฉ
      // ์ž์‹ ํด๋ž˜์Šค์—์„œ ๋ถ€๋ชจํด๋ž˜์Šค์˜ ํ•จ์ˆ˜๋ฅผ ๋ฎ์–ด์”Œ์šด๋‹ค.
      eat() {
           super.eat(); // ์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋ฉด, ๋ถ€๋ชจ์˜ eat()์ด ์‹คํ–‰๋˜๊ณ  ๋‚˜์„œ ์•„๋ž˜ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•œ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.
        console.log('์™€๊ตฌ๋จน๋Š”๋‹ค!');
      }
    }
    
    const cat = new Cat('ํŒŒ๋ž‘์ด', 'Ariel');

    ๋Œ“๊ธ€

Designed by Tistory.