μƒμ„±μž ν•¨μˆ˜λ₯Ό λŒ€μ²΄ν•˜λŠ” classπŸ’‘


πŸ§‘μƒμ„±μž ν•¨μˆ˜ 없이 데이터λ₯Ό 관리할 λ•Œ

μƒμ„±μž ν•¨μˆ˜ 없이 λ©€λ²„λ“€μ˜ 데이터λ₯Ό κ΄€λ¦¬ν•œλ‹€κ³  ν–ˆμ„ λ•Œ μ•„λž˜μ™€ 같이 쀑볡 된 μ½”λ“œκ°€ λ°œμƒν•˜λ©°, 각 μ½”λ“œλ₯Ό 뢈러올 λ•Œ λ§ˆλ‹€ μƒˆλ‘œμš΄ 객체가 호좜이 λ˜μ–΄ μ‹œμŠ€ν…œλ¦¬μ†ŒμŠ€κ°€ 낭비될 수 μžˆλ‹€

  const rm = {
    name: 'rm',
    age: 30,
    introduce() {
      console.log(`μ•ˆλ…•ν•˜μ„Έμš” ${this.age}μ‚΄ ${this.name}μž…λ‹ˆλ‹€`)
    }
  }

  const jin = {
    name: 'jin',
    age: 32,
    introduce() {
      console.log(`μ•ˆλ…•ν•˜μ„Έμš” ${this.age}μ‚΄ ${this.name}μž…λ‹ˆλ‹€`)
    }
  }

  const suga = {
    name: 'suga',
    age: 31,
    introduce() {
      console.log(`μ•ˆλ…•ν•˜μ„Έμš” ${this.age}μ‚΄ ${this.name}μž…λ‹ˆλ‹€`)
    }
  }

πŸ§‘μƒμ„±μžν•¨μˆ˜

ν•˜λ‚˜μ˜ μƒμ„±μž ν•¨μˆ˜λ₯Ό 선언해두면 μƒˆλ‘œμš΄ 객체λ₯Ό 생성할 λ•Œ λ§ˆλ‹€ ν•΄λ‹Ή ν•¨μˆ˜λ₯Ό 재호좜 ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆμ–΄ μ‹œμŠ€ν…œμžμ›μ˜ λ‚­λΉ„λ₯Ό 막고 μ½”λ“œμ˜ 쀑볡을 μ΅œμ†Œν™” ν•  수 μžˆλ‹€

  //μƒμ„±μžν•¨μˆ˜ Bts
  function Bts (name, age) {
    this.name = name;
    this.age = age;
  }
	
  //λ‹€λ₯Έ 역할을 ν•˜λŠ” ν•¨μˆ˜λ₯Ό prototype으둜 λΆ„λ¦¬ν•˜λ©΄ μ’‹λ‹€
  Bts.prototype.introduce = function() {
    return `μ•ˆλ…•ν•˜μ„Έμš” ${this.age}μ‚΄ ${this.name}μž…λ‹ˆλ‹€`;
  }

  //인수λ₯Ό λ„£μ–΄ μ„ μ–Έλ§Œ ν•˜λ©΄ λœλ‹€
  const rm = new Bts('rm', 30);
  const jin = new Bts('jin', 32);
  const suga = new Bts('suga', 31);

🧑Class

ES6λΆ€ν„° λ„μž… 된 classλ₯Ό ν™œμš©ν•˜λ©΄ 훨씬 κ°„κ²°ν•˜κ²Œ μ½”λ“œμž‘μ„±μ΄ κ°€λŠ₯해진닀
constructor ν•¨μˆ˜λ‘œ λ§€κ°œλ³€μˆ˜λ₯Ό λ°›κ³  λ³„λ„μ˜ prototype없이 classλ‚΄μ—μ„œ λ°”λ‘œ ν•¨μˆ˜λ₯Ό μƒμ„±ν•˜λ©΄ λœλ‹€

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

    introduce() {
      return `μ•ˆλ…•ν•˜μ„Έμš” ${this.age}μ‚΄ ${this.name}μž…λ‹ˆλ‹€`;
    }
  }

  const rm = new Bts('rm', 30);
  const jin = new Bts('jin', 32);
  const suga = new Bts('suga', 31);

λ§ˆμΉ˜λ©°πŸ™Œ

κ·Έλ™μ•ˆ.. μˆ˜μ—†μ΄ classκ΄€λ ¨ κ°•μ˜λ₯Ό λ“£κ³  λ”°λΌμ„œ μ‚¬μš©ν•΄λ³΄λ©° μ΄ν•΄ν•˜λ € μ• μ»μ§€λ§Œ μ‰½κ²Œ λ˜μ§€μ•Šμ•˜κ³ , 이 글을 μž‘μ„±ν•˜κΈ° μ§μ „κΉŒμ§€λ„ μ•„.. 이제 μ’€ μ•Œκ² λ‹€ μ‹ΆκΈ΄ ν–ˆμ§€λ§Œ μ—¬μ „νžˆ μ•„λ¦¬κΉŒλ¦¬ν–ˆλ‹€

μ—­μ‹œ κΈ€λ‘œ ν’€μ–΄μ„œ μ¨λ³΄λ‹ˆ 훨씬 정리가 되고 ν™•μ‹€νžˆ μ‚¬μš©λ²•κ³Ό μ‚¬μš©μ΄μœ λ₯Ό 이해할 수 있게 λœλ“―ν•˜λ‹€!! 이제 μ‹€μ œ ν”„λ‘œμ νŠΈμ—μ„œ 직접 ν™œμš©ν•΄λ³΄λ©΄μ„œ μˆ™λ‹¬μ„ μ‹œμΌœλ΄μ•Όκ² λ‹€ !! μ—­μ‹œ λ°˜λ³΅ν•™μŠ΅μ„ ν•˜κ³  λ°°μš΄λ‚΄μš©μ„ μ •λ¦¬ν•˜κ³  λ¦¬λ§ˆμΈλ“œν•˜λ‹€λ³΄λ©΄ λͺ» 배울 것이 μ—†λ‚˜λ³΄λ‹€ !!!

profile
ν”„λ‘ νŠΈμ—”λ“œ 개발자 μ„±μž₯일기 πŸ’­

0개의 λŒ“κΈ€