20210624 JS - 클래스와 객체
- 원시형과 달리 다양한 데이터를 담을 수 있음
- 관련있는 데이터들을 묶어서 한번에 잘 나타낼 수 있음
- 키로 구분된 데이터 집합이나 복잡한 개체(entity)를 저장할 수 있음
- 중괄호를 이용해 만들 수 있고, 중괄호 안에는 ‘키(key): 값(value)’ 쌍으로 구성된 프로퍼티(property) 를 여러 개 넣을 수 있음
let user = { // 객체 name: "John", // 키: "name", 값: "John" age: 30 // 키: "age", 값: 30 };
- 빈 객체를 만드는 방법은 두 가지가 있음
let user = new Object(); // '객체 생성자' 문법 let user = {}; // '객체 리터럴' 문법
- 클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀로, 객체를 정의하기 위한 상태(멤버 변수)와 메서드(함수)로 구성된다.
- 객체를 만들 때 마치 설계도처럼 사용하는 것
- 클래스는 템플릿이고 객체는 이를 구체화한 것이라고도 한다.
- 기본 문법
class MyClass { // 여러 메서드를 정의할 수 있음 constructor() { ... } method1() { ... } method2() { ... } method3() { ... } ... }
- new MyClass()를 호출하면 내부에서 정의한 메서드가 들어 있는 객체가 생성
- 객체의 기본 상태를 설정해주는 생성자 메서드 constructor()는 new에 의해 자동으로 호출되므로, 특별한 절차 없이 객체를 초기화 할 수 있음
class User { constructor(name) { this.name = name; } sayHi() { alert(this.name); } } // 사용법: let user = new User("John"); user.sayHi();
- new User("John")를 호출하면 새로운 객체가 생성되고 넘겨받은 인수와 함께 constructor가 자동으로 실행된다. 이때 인수 "John"이 this.name에 할당된다.