TIL-22

정진우·2021년 6월 24일
0

TIL

목록 보기
22/54
post-thumbnail

20210624 JS - 클래스와 객체

객체(Object)

  • 원시형과 달리 다양한 데이터를 담을 수 있음
  • 관련있는 데이터들을 묶어서 한번에 잘 나타낼 수 있음
  • 키로 구분된 데이터 집합이나 복잡한 개체(entity)를 저장할 수 있음
  • 중괄호를 이용해 만들 수 있고, 중괄호 안에는 ‘키(key): 값(value)’ 쌍으로 구성된 프로퍼티(property) 를 여러 개 넣을 수 있음
let user = {     // 객체
  name: "John",  // 키: "name",  값: "John"
  age: 30        // 키: "age", 값: 30
};
  • 빈 객체를 만드는 방법은 두 가지가 있음
let user = new Object(); // '객체 생성자' 문법
let user = {};  // '객체 리터럴' 문법



클래스(Class)

  • 클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀로, 객체를 정의하기 위한 상태(멤버 변수)와 메서드(함수)로 구성된다.
  • 객체를 만들 때 마치 설계도처럼 사용하는 것
  • 클래스는 템플릿이고 객체는 이를 구체화한 것이라고도 한다.
  • 기본 문법
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에 할당된다.
profile
프론트엔드 개발자를 꿈꾸는

0개의 댓글