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 |