μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Props
- CSS
- νλ‘ νΈμλ
- λ°λΈμ½μ€
- Flex
- useRef
- μκ³ λ¦¬μ¦
- νλ‘κ·Έλλ¨Έμ€
- λ°λΈμ½μ€3κΈ°
- float
- Gatsby
- useEffect
- history api
- μλ°μ€ν¬λ¦½νΈ
- position
- λΈλ‘κ·Έ
- fetch API
- REACT
- μ½λ©ν μ€νΈ
- Today
- Total
Daehyunii's Dev-blog
25μ₯ ν΄λμ€ λ³Έλ¬Έ
25μ₯ ν΄λμ€
Daehyunii 2022. 7. 26. 19:5225.2 ν΄λμ€ μ μ
ν΄λμ€λ class ν€μλλ₯Ό μ¬μ©νμ¬ μ μνλ€. ν΄λμ€ μ΄λ¦μ μμ±μ ν¨μμ λ§μ°¬κ°μ§λ‘ νμ€μΉΌ μΌμ΄μ€λ₯Ό μ¬μ©νλκ²μ΄ μΌλ°μ μ΄λ€.
// ν΄λμ€ μ μΈλ¬Έ
class Person {}
ν΄λμ€λ ν¨μκ³ , λ°λΌμ ν΄λμ€λ κ°μ²λΌ μ¬μ©ν μ μλ μΌκΈ κ°μ²΄λ€. ν΄λμ€ λͺΈμ²΄μλ 0κ° μ΄μμ λ©μλλ§ μ μν μ μλ€. ν΄λμ€ λͺΈμ²΄μμ μ μν μ μλ λ©μλλ constructor, νλ‘ν νμ λ©μλ, μ μ λ©μλμ μΈ κ°μ§κ° μλ€.
// ν΄λμ€ μ μΈλ¬Έ
class Person {
// μμ±μ
constructor(name){
this.name = name; // ν΄λμ€μ μν΄ λ―Έλμ μμ±λ κ°μ²΄μ νλ‘νΌν°
}
// νλ‘ν νμ
λ©μλ
sayHi(){
console.log(`Hi my name is ${this.name}`);
}
// μ μ λ©μλ
static sayHello(){
console.log('hello!');
}
}
//μΈμ€ν΄μ€ μμ±
const me = new Person('lee');
console.log(me.name); // lee
me.sayHi(); // Hi my name is lee
Person.sayHello(); // hello!
ν΄λμ€μ μμ±μ ν¨μμ μ μ λ°©μμ ννμ μΈ λ©΄μμ λ§€μ° μ μ¬νλ€.
25.4 μΈμ€ν΄μ€ μμ±
ν΄λμ€λ κ²°κ΅ μμ±μ ν¨μμ΄λ©° new μ°μ°μμ ν¨κ» νΈμΆλμ΄ μΈμ€ν΄μ€λ₯Ό μμ±νλ€.
class Person {}
const me = new Person();
console.log(me); // Person {}
ν¨μλ new μ°μ°μμ μ¬μ© μ¬λΆμ λ°λΌ μΌλ° ν¨μλ‘ νΈμΆλκ±°λ μΈμ€ν΄μ€ μμ±μ μν μμ±μ ν¨μλ‘ νΈμΆλμ§λ§ ν΄λμ€λ μΈμ€ν΄μ€λ₯Ό μμ±νλ κ²μ΄ μ μΌν μ‘΄μ¬ μ΄μ μ΄λ―λ‘ λ°λμ new μ°μ°μμ ν¨κ» νΈμΆν΄μΌ νλ€.
25.5 λ©μλ
ν΄λμ€ λͺΈμ²΄μλ 0κ° μ΄μμ λ©μλλ§ μ μΈν μ μλ€. ν΄λμ€ λͺΈμ²΄μμ μ μν μ μλ λ©μλλ constructor λ©μλ, νλ‘ν νμ λ©μλ, μ μ λ©μλ μΈκ°μ§κ° μλ€.
25.5.1 constructor
constructorλ μΈμ€ν΄μ€λ₯Ό μμ±νκ³ μ΄κΈ°ννκΈ° μν νΉμν λ©μλλ€. constructroλ μ΄λ¦μ λ³κ²½ν μ μλ€.
class Person {
constructor(name){
this.name = name;
}
}
25.5.2 νλ‘ν νμ λ©μλ
μμ±μ ν¨μλ₯Ό μ¬μ©νμ¬ μΈμ€ν΄μ€λ₯Ό μμ±νλ κ²½μ° νλ‘ν νμ λ©μλλ₯Ό μμ±νκΈ° μν΄μλ λͺ μμ μΌλ‘ νλ‘ν νμ μ λ©μλλ₯Ό μΆκ°ν΄μΌ νλ€. νμ§λ§ ν΄λμ€ λͺΈμ²΄μμ μ μν λ©μλλ μμ±μ ν¨μμ μν κ°μ²΄ μμ± λ°©μκ³Όλ λ€λ₯΄κ² ν΄λμ€μ prototype νλ‘νΌν°μ λ©μλλ₯Ό μΆκ°νμ§ μμλ κΈ°λ³Έμ μΌλ‘ νλ‘ν νμ λ©μλκ° λλ€.
// ν΄λμ€ μ μΈλ¬Έ
class Person {
// μμ±μ
constructor(name){
this.name = name;
}
// νλ‘ν νμ
λ©μλ
sayHi(){
console.log(`Hi my name is ${this.name}`);
}
}
const you = new Person('park');
you.sayHi(); // Hi my name is park
μμ±μ ν¨μμ λ§μ°¬κ°μ§λ‘ ν΄λμ€κ° μμ±ν μΈμ€ν΄μ€λ νλ‘ν νμ 체μΈμ μΌμμ΄ λλ€.
25.5.3 μ μ λ©μλ
μ μ λ©μλλ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μμλ νΈμΆν μ μλ λ©μλ μ¦, ν¨μ κ°μ²΄ μμ μ΄ κ°μ§λ λ©μλλ₯Ό λ§νλ€. μμ±μ ν¨μμ κ²½μ° μ μ λ©μλλ₯Ό μμ±νκΈ° μν΄μλ λͺ μμ μΌλ‘ μμ±μ ν¨μμ λ©μλλ₯Ό μΆκ°ν΄μΌ νλ€. νμ§λ§ ν΄λμ€μμλ λ©μλμ static ν€μλλ₯Ό λΆμ΄λ©΄ μ μ λ©μλκ° λλ€.
// ν΄λμ€ μ μΈλ¬Έ
class Person {
// μμ±μ
constructor(name){
this.name = name; // ν΄λμ€μ μν΄ λ―Έλμ μμ±λ κ°μ²΄μ νλ‘νΌν°
}
// μ μ λ©μλ
static sayHello(){
console.log('hello!');
}
}
Person.sayHello(); // hello!
25.7 νλ‘νΌν°
25.7.1 μΈμ€ν΄μ€ νλ‘νΌν°
μΈμ€ν΄μ€ νλ‘νΌν°λ constructor λ΄λΆμμ μ μν΄μΌ νλ€.
class Person {
constructor(name){
this.name = name; // ν΄λμ€μ μν΄ λ―Έλμ μμ±λ κ°μ²΄μ νλ‘νΌν°
}
}
const me = new Person('lee');
console.log(me); // Person {name : 'lee'}
constructor λ΄λΆ μ½λκ° μ€νλκΈ° μ΄μ μ constructor λ΄λΆμ thisμλ μ΄λ―Έ ν΄λμ€κ° μ묡μ μΌλ‘ μμ±ν μΈμ€ν΄μ€μΈ λΉ κ°μ²΄κ° λ°μΈλ©λμ΄ μλ€.
25.8 μμμ μν ν΄λμ€ νμ₯
25.8.1 ν΄λμ€ μμκ³Ό μμ±μ ν¨μ μμ
μμμ μν ν΄λμ€ νμ₯μ μ§κΈκΉμ§ μ΄ν΄λ³Έ νλ‘ν νμ κΈ°λ° μμκ³Όλ λ€λ₯Έ κ°λ μ΄λ€. νλ‘ν νμ κΈ°λ° μμμ νλ‘ν νμ 체μΈμ ν΅ν΄ λ€λ₯Έ κ°μ²΄μ μμ°μ μμλ°λ κ°λ μ΄μ§λ§ μμμ μν ν΄λμ€ νμ₯μ κΈ°μ‘΄ ν΄λμ€λ₯Ό μμλ°μ μλ‘μ΄ ν΄λμ€λ₯Ό νμ₯νμ¬ μ μνλ κ²μ΄λ€.
class Animal {
constructor(age, weight){
this.age = age;
this.weight = weight;
}
eat(){
return 'eat';
}
move(){
return 'move';
}
}
// μμμ ν΅ν΄ Animal ν΄λμ€λ₯Ό νμ₯ν Bird ν΄λμ€
class Bird extends Animal {
fly(){
return 'fly';
}
}
const bird = new Bird(1,5);
console.log(bird); // Bird {age: 1, weight: 5}
console.log(bird instanceof Bird); // true
console.log(bird instanceof Animal); // true
console.log(bird.eat()); // eat
console.log(bird.move()); // move
console.log(bird.fly()); // fly
25.8.2 extends ν€μλ
μμμ ν΅ν΄ ν΄λμ€λ₯Ό νμ₯νλ €λ©΄ extends ν€μλλ₯Ό μ¬μ©νμ¬ μμλ°μ ν΄λμ€λ₯Ό μ μνλ€. μμμ ν΅ν΄ νμ₯λ ν΄λμ€λ₯Ό μλΈν΄λμ€λΌ λΆλ₯΄κ³ , μλΈν΄λμ€μκ² μμλ ν΄λμ€λ₯Ό μνΌν΄λμ€λΌ λΆλ₯Έλ€. μνΌν΄λμ€μ μλΈν΄λμ€λ μΈμ€ν΄μ€μ νλ‘ν νμ 체μΈλΏ μλλΌ ν΄λμ€ κ°μ νλ‘ν νμ 체μΈλ μμ±νλ€. μ΄λ₯Ό ν΅ν΄ νλ‘ν νμ λ©μλ, μ μ λ©μλ λͺ¨λ μμμ΄ κ°λ₯νλ€.
'π Language & CS knowledge > JavaScript (λͺ¨λμλ°μ€ν¬λ¦½νΈ Deep Dive)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
27μ₯ λ°°μ΄ (0) | 2022.07.27 |
---|---|
26μ₯ ES6 ν¨μμ μΆκ° κΈ°λ₯ (0) | 2022.07.26 |
24μ₯ ν΄λ‘μ (0) | 2022.07.22 |
23μ₯ μ€ν 컨ν μ€νΈ (0) | 2022.07.20 |
22μ₯ this (0) | 2022.07.19 |