[JS] Class 간단 정리

[JS] Class 간단 정리

이채현

클래스

  • class 선언은 프로토타입 기반 상속을 사용
  • 정의: 함수 정의방법과 동일하게 가능, 함수 표현식과 함수 선언을 class표현식에서 사용 가능
1
2
3
4
5
6
7
8
9
10
11
function Person(name, age) {
this.name = name;
this.age = age;
}

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

인스턴스

  • 싱글리터럴로 만든 객체도 각자의 인스턴스를 뜻함..객체이지만 인스턴스
  • 생성자 함수와 클래스를 활용하여…new 연산자와 더불어 만듬
1
2
3
4
5
6
function Func() {} // 생성자함수의 이름은 Pascal case로..

class Class {}

const newInstance = new Func();
const newInstance2 = new Class();

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
function Person(name, age) {
this.name = name;
this.age = age;
this.location = location;
}

Person.prototype.getName = function () {
return this.name + ' 입니다.';
}

=============================================

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

getName() {
return this.name + ' 입니다.';
}
}

const one = new Person('one', 1, 'Korea');
const two = new Person('two', 2, 'Korea');

console.log(one.getName()); // one 입니다.
  • 클래스는 뿐만 아니라 Private키워드, 정적메서드 등 수 많은 기능을 제공

클래스 확장 (extends, 상속)

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
31
// Super Class
class Animal {
constructor(name, sound) {
this.name = name
this.sound = sound;
}

getInfo() {
return this.name + '가(이)' + this.sound + '소리를 낸다.';
}
}
// Sub Class
class Friends extends Animal {
constructor(name, sound) {
super(name, sound); // 부모의 생성자함수를 호출가능
}
}

const dog = new Friends('개', '멍멍');
const cat = new Friends('고양이', '냐옹');

console.log(dog.getInfo()); // 개가(이)멍멍소리를 낸다.
console.log(cat.getInfo()); // 고양이가(이)냐옹소리를 낸다.

-------------------------------------------------

dog.contructor.name // Friends
cat.contructor.name // Friends

dog instanceof Friends // true
dog instanceof Animal // true
Author

Chaehyeon Lee

Posted on

2022-02-12

Updated on

2022-06-26

Licensed under

댓글