TIL-20 JavaScript Class

PRB·2021년 8월 5일
0

JavaScript

목록 보기
12/24
post-thumbnail

Class는 객체지향 프로그래밍의 핵심이다.
여기서 객체지향 프로그래밍이란, 프로그램을 객체들로 구성하고, 객체들 간에 서로 상호 작용 하도록 작성하는 방법이다.
비슷한 객체들이 많다면 Class를 쓰면 코드를 더 효율적으로 만들수있다.
원하는 구조의 객체 틀을 짜놓고, 비슷한 모양의 객체를 공장처럼 찍어낼 수 있다

let 아이폰 = {  
  name : '아이폰',  
  price : 200000,   
}
let 갤럭시 = {  
  name : '갤럭시',  
  price : 200000,   
}

->

class 휴대폰 {
	constructor(a){
    		this.name = a
    		this.price = 200000
    	}
}

let 아이폰 = new 휴대폰('아이폰')

생성자(Constructor)

객체(object)의 설계도인 클래스(class)는 문법이 비슷하다.
객체와 클래스의 가장 큰 차이는 생성자(Constructor) 라는 생성자 함수이다.
class로 객체를 생성하는 과정을 '인스턴스화'라고 부른다.

class Car {
  constructor(name, price) {
    this.name = name;
    this.price = price;
  }
}

Car는 class이름이다. 항상 대문자로 시작하고, CamelCase로 작성해야 하다.
Car class의 instance를 생성할때마다 constructor 메서드가 호출된다.
constructor() 메서드는 name, price 2개의 argument(인자)를 받는다.
constructor() 메서드에 this 키워드를 사용했다.
class의 실행범위(context)에서 this 는 해당 instance를 의미한다.
constructor() 에서 인자로 넘어오는 name과 price를 사용해 Car instance의 name, price 프로퍼티에 값을 할당했다.
이렇게 클래스 내에서 name, price와 같이 변경 가능한 상태값이자 class내의 컨텍스트에서 어느 곳에서나 사용할 수 있는 변수를 '멤버 변수'라고 한다.
멤버 변수는 this 키워드로 접근한다.

인스턴스(Instance)

인스턴스(Instance)는 class를 통해 생성된 객체이다.
인스턴스는 class의 property이름과 method를 갖는 객체이다.
인스턴스 마다 모두 다른 프로퍼티 값을 갖고 있다.

const morning = new Car('Morning', 20000000);

인스턴스는 Class 이름에 new 를 붙여서 생성한다.
클래스 이름 우측에 () 괄호를 열고 닫고, 내부에는 constructor 에서 필요한 정보를 인자로 넘겨준다.
Car클래스의 instance를 morning 이라는 변수에 저장했다.
Car 클래스의 새로운 instance를 생성하려면 new 키워드가 필요하다.
new 키워드는 constructor() 메서드를 호출하고 새로운 instance를 return해준다.
'Morning'이라는 String과 2000000 이라는 Number를 Car 생성자에 넘겨주었고, name, price 프로퍼티에 각자의 값이 할당되었다.

메서드(Methods)

메서드는 함수이다.
그런데 객체가 프로퍼티 값으로 갖고 있는 것을 메서드라고 부른다.
Class의 method는 Object(객체)의 문법과 똑같다.
하지만 객체는 프로퍼티마다 comma(,)로 구분해줘야 했지만, 클래스는 그렇지 않다.

참고사이트
https://www.youtube.com/watch?v=dHrI-_xq1Vo

profile
사용자 입장에서 사용자가 원하는 것을 개발하는 프론트엔드 개발자입니다.

0개의 댓글