클래스란 객체지향 프로그래밍의 핵심이다
클래스란 객체(ex.{num:1}) 처럼 생긴 객체를 잘 만들기 위한 틀은 맞지만 (ex.{num:1}) 과 같은 데이터 타입은 아니다.
클래스의 인스턴스화로 인해 생긴 객체(인스턴스)는 메소드와 멤버변수를 가질 수 있다.
원하는 구조를 먼저 짜놓고 공장처럼 찍어내는 기계라고 나는 이해하였다.
객체를 매번 생성해도 상관은 없지만 큰 프로젝트에서 계속해서 쓰이는 비슷한 모양의 객체는 class를 사용한다면 효율적으로 개발할 수 있다.
class Car {
constructor(name, price) {
this.name = name;
this.price = price;
}
}
CamelCase
로 작성해줘야한다.constructor
은 생성자 함수라고 부르며 객체와 가장 큰 차이점이라고 할 수 있겠다.const morning = new Car('Morning', 2000000);
위와 같이 class로 객체를 생성하는 과정을 인스턴스화
라고 하며 class를 통해 생성된 객체를 인스턴스
라고 부른다
class는 새로운 인스턴스를 생성할 때마다 constructor()메서드를 호출한다
메소드는 함수이다. 객체 내의 프로퍼티로 함수를 갖고 있으면 그것을 메소드라고 부른다.
let a = new Array();
console.log(a.push(1,2,3,4,5))
배열에 push 메소드를 찍어보던 중 알게된 사실인데
직관적으로 나는 콘솔로그의 출력값이 당연히 [1,2,3,4,5]
가 출력될 줄 알았지만 값은 5가 나왔고 배열 a에 push를 계속해서 넣어줄 수록 push해주는 길이가 더해져서 값이 출력되었다.
그래서 MDN문서를 찾아보니
push() 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환합니다.
라는 사실을 알게되었다.
push()메소드는 배열에 값을 삽입해 줄 뿐만 아니라 배열의 길이값도 반환해준다.