생각 주제:
class와 함수의 차이는 무엇인가요?
함수
- 함수란 자신의 외부(재귀 함수의 경우 스스로) 코드가 ‘호출’할 수 있는 하위 프로그램
- 명령문의 시퀀스로 구성된 함수 본문을 가진다.
- 함수는 function 객체이다.
Class
Class 정의
- 객체를 생성하기 위한 템플릿
- 클래스는 데이터와 이를 조작하는 코드를 하나로 추상화 함
- Class는 특별한 함수이다.
- class 문법도 class표현식 & class 선언 두 가지 방법을 제공
Class 선언
- class 키워드 뒤에 클래스 이름.
class Rulu {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
- Hoisting
- 함수 선언과 클래스 선언의 중요한 차이점은 함수는 정의하기 전에 호출이 가능하지만, 클래스는 반드시 정의한 뒤에 사용할 수 있다는 것이다.
- 클래스는 호이스팅될 때 초기화가 되지 않는다.
Class 표현식
- Class 표현식은 이름이 있을수도, 없을 수도
- 이름을 가진 class 표현식의 이름은 클래스 body의 local scope에 한해 유효.
- 클래스의 name속성을 통해 찾을 수 있음. (인스턴스 이름이 X)
- 호이스팅될 때 초기화가 되지 않는다.
// unnamed
let Rectangle = class {
constructor(height, width) {
this.height = height;
this.width = width;
}
};
console.log(Rectangle.name);
// 출력: "Rectangle"
Constructor
- class로 생성된 객체를 생성하고 초기화하기 위한 특수 메서드
- 하나의 클래스에 하나의 constructor
- super키워드 사용가능
'FE 기술 > JavaScript' 카테고리의 다른 글
JavaScript) Scope (0) | 2023.04.24 |
---|---|
JavaScript) 명령형, 선언형의 차이 (0) | 2023.04.24 |
JavaScript) 상속 (0) | 2023.04.24 |
JavaScript) 다양한 함수 선언 방식 (0) | 2023.04.24 |
JavaScript) static 메서드와 class (0) | 2023.04.24 |