일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- vue 지역 컴포넌트
- SCSS extend
- 다른컴퓨터에서 git사용
- 프로그래머스 프론트엔드 데브코스
- postcss
- flex
- 리스트 렌더링
- Vue
- netlify redirect
- 프로그래머스 데브코스 프론트엔드
- SCSS import
- SCSS forward
- Spacer
- vue mixin
- KDT 프로그래머스
- react next
- 쌓임맥락
- intersection opserver
- 프로그래머스 데브코스
- 고양이 사진 검색기
- nextjs사용법
- KDT 프로그래머스 데브코스 프론트엔드
- vuex map
- git 같은계정 다른 컴퓨터
- 리액트
- 폼 입력 바인딩
- vue 이벤트 수신
- 프로그래머스 K_Digital Training
- 이벤트 수식어
- SCSS use
- Today
- Total
혼자 적어보는 노트
[Javacscript] class에 대한 기본적인 이해 본문
class를 종종 접하게 되다 보니 이제는 기본적인 정리가 필요할 것 같아서
이번에 이해를 한 바탕으로 정리를 해 보았다.
Class
클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위한 템플릿이다.
클래스는 객체를 정의하기 위한 변수와 메서드(함수)로 구성된다.
함수 선언과 클래스 선언의 차이점은 함수 선언의 경우 호이스팅이 일어나지만,
클래스 선언은 호이스팅이 일어나지 않기 때문에 클래스를 먼저 선언해 주어야 한다.
기본 문법 사용해보기.
class User {
constructor(name){
this.name = name;
}
myName(){
console.log(this.name);
}
sayHello(){
console.log("Hello");
}
}
let user = new User('Jay');
user.myName(); // Jay
user.sayHello(); // Hello
먼저 class를 만들면 내부에 여러 메서드(함수)들을 정의 할수 있다.
생성자 메서드 constructor()으로 객체의 기본 상태를 설정해 줄 수 있다.
* 클래스의 메서드 사이에서는 쉼표를 넣지 않는다.
작동 순서
1. new User으로 새로운 객체를 생성하여 'jay' 전달.
2. 자동으로 constructor()이 실행되며 this.name에 'jay'가 할당 됨.
3. user.myName()을 실행하면 class User안에 myName()이 실행된다.
class는 함수의 한 종류이다.
console.log(typeof User) //function
console.log(typeof user) //object
위와 같이 class User은 함수이며 new user()은 object로 확인할 수 있다.
물론 class 단독으로 함수실행이 되지는 않는다.
console.log(User.prototype.myName)
/*
myName(){
console.log(this.name);
}
*/
class안에서 정의한 메서드(함수)들은 User.prototype에 저장된다.
클래스 표현식
class는 3가지 방법으로 선언이 가능하다.
기본 class
class User {
myName(){
console.log("jay");
}
};
익명 표현식 (Unnamed)
const User = class {
myName(){
console.log("jay");
}
};
기명 표현식 (Named)
* 해당 표현식 사용시 myInfo는 이름은 클래스 내부에서만 사용할 수 있다.
const User = class myInfo{
myName(){
console.log("jay");
}
};
클래스필드 (Class Field)
class안에 프로퍼티 추가가 가능하다.
class User {
first = "Jay";
second = "Jin";
myName(){
console.log(`First is ${this.first}, second is ${this.second}`);
}
};
const user = new User();
console.log(user.first, user.second);
//Jay Jin
user.myName();
//First is Jay, second is Jin
class field문법을 사용하여 클래스 안에 프로퍼티를 추가할 수 있다.
class 안의 프로퍼티에 접근하려면 개별로 객체를 만들어 주어야 한다.
++추가적으로 getter setter과 extends와 super등 정리 할 예정이다.
'Javascript' 카테고리의 다른 글
[Javascript] Promise에 대한 이해 (0) | 2021.11.23 |
---|---|
[Javascript] Callback에 대한 이해 (0) | 2021.11.22 |
[Javascript] fetch() (0) | 2021.11.15 |
[Javascript] sort()를 이용한 좌표 정렬 (0) | 2021.11.12 |
[Javascript] 길이에 맞는 배열을 생성한 후 값 초기화 하기 (0) | 2021.11.11 |