Zoeeey
Stack flows in you
Zoeeey
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (155)
    • ๐Ÿ’ก UXUI (4)
      • UXUI (2)
      • UI (2)
      • UX (0)
    • ๐ŸŸจ JavaScript (66)
      • ๊ฐœ๋… (42)
      • ์ •๋ฆฌ (2)
      • ๋ฌธ์ œํ’€๊ธฐ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, ์ฝ”๋”ฉ์• ํ”Œ) (15)
      • ์‘์šฉํ•˜์—ฌ ์ž๋™ํ™”or๋ฌธ์ œํ•ด๊ฒฐํ•˜๊ธฐ (2)
      • ๊ธฐํƒ€ (5)
    • โš›๏ธ React (49)
      • ๊ฐœ๋… (27)
      • ๊ฐœ๋…(Redux) (3)
      • ์ •๋ฆฌ (4)
      • ๋ฌธ์ œํ’€๊ธฐ (์ฝ”๋”ฉ์• ํ”Œ: React) (15)
    • ๐Ÿ“˜ TypeScript (10)
      • ๊ฐœ๋… (8)
      • ๋ฌธ์ œํ’€๊ธฐ (์ฝ”๋”ฉ์• ํ”Œ) (2)
    • ๐ŸŒ HTML,CSS (18)
      • ์‹ค๋ฌด์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋“ค (10)
      • ๋’ค๋Šฆ๊ฒŒ ์•Œ์•„์„œ ๋ผˆ์•„ํ”ˆ ์œ ์šฉํ•œ CSS (6)
      • ๊ธฐํƒ€ ์ž์ฃผ ์“ฐ๋Š” CSS (2)
    • ๐Ÿ’ป CS (8)
      • CS (5)
      • ์ •๊ทœํ‘œํ˜„์‹ (2)
      • Git,Github (1)

ํƒœ๊ทธ

  • Props
  • useEffect
  • state
  • react
  • TypeScript
  • ์˜ค๋ฅ˜
  • class
  • object
  • Ajax
  • axios
  • array
  • CSS
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์ฝ”๋”ฉ์• ํ”Œ
  • CS
  • json
  • UXUI
  • JavaScript
  • redux
  • ์‚ผํ•ญ์—ฐ์‚ฐ์ž
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
hELLO ยท Designed By ์ •์ƒ์šฐ.
Zoeeey

Stack flows in you

๐ŸŸจ JavaScript/๊ฐœ๋…

[mdn, ๋“œ๋ฆผ์ฝ”๋”ฉ ์™ธ] ๊ฐ์ฒด์ง€ํ–ฅ (1) : ํด๋ž˜์Šค(class)

2022. 5. 3. 21:07

๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ : ์ƒ์„ฑ์žํ•จ์ˆ˜์™€ ํด๋ž˜์Šค์˜ ์ฐจ์ด์ 

https://sunshineyellow.tistory.com/18?category=1037372 

 

[์ฝ”๋”ฉ์•™๋งˆ ์™ธ] ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด๊ณผ ๊ฐ์ฒด ์ ‘๊ทผ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์ƒ์„ฑ์ž ํ•จ์ˆ˜

๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋‹จ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋งŒ์„ ์ƒ์„ฑํ•  ๋•Œ๋Š” ์ง๊ด€์ ์ด๊ณ  ๊ฐ„ํŽธํ•œ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•˜๊ณ , ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๋Œ€๋Ÿ‰์ƒ์‚ฐํ•  ๋•Œ๋Š” ์ƒ์„ฑ์žํ•จ์ˆ˜๋ฅผ

sunshineyellow.tistory.com

์œ„ ๊ธ€์—์„œ ๊ฐ์ฒด์™€ ์ƒ์„ฑ์žํ•จ์ˆ˜๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณต๋ถ€ํ–ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ƒ์„ฑ์žํ•จ์ˆ˜์™€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ํŠน์ด์ ์€ ๋ฌด์—‡์ผ๊นŒ?

  1. ํด๋ž˜์Šค๋Š” new ์—ฐ์‚ฐ์ž ์—†์ด๋Š” ํ˜ธ์ถœ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  2. ํด๋ž˜์Šค๋Š” extends(ํด๋ž˜์Šค์˜ ์ƒ์†)์™€ super(superํด๋ž˜์Šค์˜ constructor๊ณผ method ํ˜ธ์ถœ)๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค.
  3. ํด๋ž˜์Šค๋Š” ์ž๋™์œผ๋กœ strict mode๋กœ ์‹คํ–‰๋˜๋ฉฐ ํ˜ธ์ด์ŠคํŒ…์€ ๋˜๋‚˜ TDZ๊ฐ€ ๋ฐœ์ƒํ•ด ์„ ์–ธ ์ „์— ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค.

ํด๋ž˜์Šค (class)

ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ์ด๋‹ค.

let Goodcoder = class {
  //constructor
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  
  //method
  coding() {
    console.log(`${this.name}, good job!`);
  }
};

ํด๋ž˜์Šค ์•ˆ์—๋Š” ํด๋ž˜์Šค๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ์„ฑ์ž(constructor)๊ฐ€ ํ•œ ๊ฐœ๋งŒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. (์—ฌ๋Ÿฌ๊ฐœ์˜ constructor ๋ฉ”์„œ๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด SyntaxError๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.)

๋˜ํ•œ method(https://sunshineyellow.tistory.com/17์—์„œ๋„ ๊ณต๋ถ€ํ–ˆ๋‹ค)๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜์„ ์–ธ๋ฌธ๊ณผ ํ•จ์ˆ˜ํ‘œํ˜„์‹์„ ์“ฐ๋“ฏ, ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋„ ํด๋ž˜์Šค์„ ์–ธ๋ฌธ๊ณผ ํด๋ž˜์Šคํ‘œํ˜„์‹์ด ์žˆ๋‹ค.


ํด๋ž˜์Šค์„ ์–ธ๋ฌธ

class Goodcoder {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

ํด๋ž˜์Šค์„ ์–ธ๋ฌธ์€ ํ•จ์ˆ˜์„ ์–ธ๋ฌธ๊ณผ ๋‹ค๋ฅด๊ฒŒ ํด๋ž˜์Šค๊ฐ€ ํ˜ธ์ด์ŠคํŒ…๋  ๋•Œ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„ ์–ธํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

const noran = new Goodcoder //ReferenceError

class Goodcoder {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

ํด๋ž˜์Šคํ‘œํ˜„์‹

ํด๋ž˜์Šค์„ ์–ธ๋ฌธ๊ณผ ๋™์ผํ•œ ํ˜ธ์ด์ŠคํŒ…์„ ์ ์šฉ๋ฐ›์•„ ์„ ์–ธํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

unnamed

let Goodcoder = class {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
};

console.log(Goodcoder.name); //Goodcoder๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

named

let Goodcoder = class Goodcoder2 {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
};

console.log(Goodcoder.name); //Goodcoder2๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

name์„ ๊ฐ€์ง„ class์˜ name์€ class body({}๋กœ ๋ฌถ์—ฌ์žˆ๋Š” ๋ถ€๋ถ„)์˜ local scope์— ํ•œํ•ด ์œ ํšจํ•˜๋‹ค.


์ถœ์ฒ˜ : ๋“œ๋ฆผ์ฝ”๋”ฉ https://www.youtube.com/@dream-coding / MDN https://developer.mozilla.org/ko

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐ŸŸจ JavaScript > ๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[mdn, ๋“œ๋ฆผ์ฝ”๋”ฉ ์™ธ] ๊ฐ์ฒด์ง€ํ–ฅ (3) : ์ •์  ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ(static properties and methods)  (0) 2022.05.04
[mdn, ๋“œ๋ฆผ์ฝ”๋”ฉ ์™ธ] ๊ฐ์ฒด์ง€ํ–ฅ (2) : ๊ฐ์ฒด(object)์™€ getter and setter  (0) 2022.05.04
[๋“œ๋ฆผ์ฝ”๋”ฉ ์™ธ] ์ฝœ๋ฐฑํ•จ์ˆ˜ (Callback function)  (0) 2022.04.22
[๋“œ๋ฆผ์ฝ”๋”ฉ] Early return, early exit?  (0) 2022.04.21
[๋“œ๋ฆผ์ฝ”๋”ฉ, comp110 ์™ธ] ๋งค๊ฐœ๋ณ€์ˆ˜ (parameters)์™€ ๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜(rest parameters)  (0) 2022.04.18
    '๐ŸŸจ JavaScript/๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [mdn, ๋“œ๋ฆผ์ฝ”๋”ฉ ์™ธ] ๊ฐ์ฒด์ง€ํ–ฅ (3) : ์ •์  ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ(static properties and methods)
    • [mdn, ๋“œ๋ฆผ์ฝ”๋”ฉ ์™ธ] ๊ฐ์ฒด์ง€ํ–ฅ (2) : ๊ฐ์ฒด(object)์™€ getter and setter
    • [๋“œ๋ฆผ์ฝ”๋”ฉ ์™ธ] ์ฝœ๋ฐฑํ•จ์ˆ˜ (Callback function)
    • [๋“œ๋ฆผ์ฝ”๋”ฉ] Early return, early exit?
    Zoeeey
    Zoeeey
    ๊ธธ๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ์งง๊ฒŒ ๊ทธ๋ฆฌ๊ธฐ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”