TIL (class)

2024. 6. 24. 23:58ใ†TIL

๐Ÿ’ก class

 

class -  ํ•จ์ˆ˜๋ฅผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹๊ณผ ํ•จ์ˆ˜ ์„ ์–ธ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋“ฏ์ด class ๋ฌธ๋ฒ•๋„ class ํ‘œํ˜„์‹๊ณผ class ์„ ์–ธ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ‹€์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

1. class ์„ ์–ธ 

- class๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ class ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

class Human {
constructor(name, gender) {
 this.name = jessi;
 this.gender = female;
} }

- ํ•จ์ˆ˜ ์„ ์–ธ๊ณผ ํด๋ž˜์Šค ์„ ์–ธ์˜ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์€ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ๋Š” ์ •์˜ํ•˜๊ธฐ์ „์— ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ ์ •์˜ํ•œ ๋’ค์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

- ํด๋ž˜์Šค ๋‚ด์— ์ •์˜๋œ ํ•จ์ˆ˜๋ฅผ method๋กœ ๋ถ€๋ฅด๋ฉฐ, ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

- ํด๋ž˜์Šค ์ด๋ฆ„์€ ํ•ญ์ƒ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•œ๋‹ค.

 

2. Class ํ‘œํ˜„์‹

- class๋ฅผ ์ •์˜ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ธ class ํ‘œํ˜„์‹์€ ์ด๋ฆ„์„ ๊ฐ€์งˆ ์ˆ˜๋„ ์žˆ๊ณ  ๊ฐ–์ง€ ์•Š์„ ์ˆ˜ ๋„ ์žˆ๋‹ค.

- ์ด๋ฆ„์€ ๊ฐ€์ง„ class ํ‘œํ˜„์‹์˜ ์ด๋ฆ„์€ ํด๋ž˜์Šค body์˜ local ์•ˆ์—์„œ ์œ ํšจํ•˜๋‹ค.

// ์ด๋ฆ„์ด ์—†๋Š” ๊ฒฝ์šฐ
let Human = class {
  constructor(name, gender) {
 this.name = jessi;
 this.gender = female;
};
console.log(Human.name); // "Human"

// ์ด๋ฆ„์ด ์žˆ๋Š” ๊ฒฝ์šฐ
let Human = class Human2 {
  constructor(name, gender) {
 this.name = jessi;
 this.gender = female;
 };
};
console.log(Human.name); // "Human2"

 

3. class ์ƒ์† & extends

 - ์ƒ์†์€ ํด๋ž˜์Šค ๊ฐ„์— ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค. ๊ธฐ๋ณธ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒํ•œ๋‹ค.

class Female {
  constructor(name, age) {
     this.name = name;
     this.age = age;
  }
  
  introduce() {
        return `my name is ${this.name}.`
    }
 }
 
 class male {
  constructor(name, age) {
     this.name = name;
     this.age = age;
  }
  
  introduce() {
        return `my name is ${this.name}.`
    }
 }

 

- ๋‘๊ฐœ์˜ ํด๋ž˜์Šค๋Š” ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ํด๋ž˜์Šค ๋ชจ๋‘ ํ™•์žฅ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋กœ ์ด๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

  (๋ถ€๋ชจ์™€ ์ž์‹ ๊ด€๊ณ„)

class Human {
  constructor(name, age) {
     this.name = name;
     this.age = age;
  } 
  introduce() {
        return `my name is ${this.name}.`
    }
 }
class Female extends Human {
     Hobby() {
      return 'swimming'
 } } 
 class male extends Human {
     Job() {
     return 'engineer'
 } }
 
 let john = new male("John", "Freelance")
 john.introduce() // my name is John.

 

 

 

 

์ฐธ๊ณ  : Classes - JavaScript | MDN (mozilla.org)

 

'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

TIL ( TypeScript ํ•™์Šต)  (0) 2024.06.26
TIL ( WebSocket )  (0) 2024.06.25
TIL( ์ฝ”๋“œ์ดํ•ดํ•˜๊ธฐ )  (0) 2024.06.20
TIL( TypeErrorํ•ด๊ฒฐ)  (0) 2024.06.19
TIL ( Validator )  (0) 2024.06.18