20.09.10 [Object, Class]

박종찬·2020년 9월 10일
0

TIL

목록 보기
24/89
post-thumbnail

Object

Object Literal

  • 가장 일반적인 객체 생성 방식입니다.
  • 중괄호를 사용하여 객체를 생성합니다.
let person = {
  firstName: 'Edmund',
  lastName: 'Festa',
};

console.log(person); // {firstName: 'Edmund', lastName: 'Festa'}

Object Constructor

  • new 키워드와 Object 생성자 함수를 호출하여 빈 객체를 생성한 뒤 프로퍼티나 메소드를 추가할 수 있습니다.
let person = new Object();

person.firstName = 'Edmund';
person.lastName = 'Festa';

console.log(person); // {firstName: 'Edmund', lastName: 'Festa'}

Constructor Function

  • 이전 방법은 같은 객체를 생성하려면 매번 프로퍼티나 메소드를 정의해줘야 합니다.
  • 생성자 함수를 사용한다면 객체를 생성하기 위한 클래스처럼 사용할 수 있습니다.
  • 생상자 함수 내에 this는 생성될 인스턴스를 가르킵니다.
function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

let person1 = new Person('Edmund', 'Festa');
let person2 = new Person('Mark', 'Hardman');

Class

class Person {
  constructor(firstName, lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }
}

let person1 = new Person('Edmund', 'Festa');
let person2 = new Person('Mark', 'Hardman'); 

Prototype

  • 자바스크립트는 다른 객체지향 프로그래밍 언어와 다르게 프로토타입 기반 객체 지향 프로그래밍 언어입니다.
  • 자바스크립트는 클래스 없이 객체를 생성할 수 있습니다. 그리고 모든 객체는 자신의 부모 객체와 연결되어 있습니다. 이 부모 객체를 프로토타입이라 합니다.
  • 이 말은 클래스 기반 언어에서 Inheritance를 사용하는 것과 다르게, 객체를 프로토타입으로 복제해 객체의 동작 방식을 다시 사용할 수 있습니다.
  • prototype은 클래스에서 인스턴스로 만들어질 때 공통적으로 가지고 있는 것을 정의할 수 있습니다.

Constructor

  • 클래스에서 오직 하나만 존재하는 생성자 메소드입니다.
  • 생성자의 역할은 같은 속성과 메소드를 공유하는 인스턴스를 여러 개 만들 수 있도록 해줍니다. 즉, 인스턴스를 생성하는 역할을 합니다.
  • **super** 키워드를 이용하여 상위 클래스의 생성자 메소드를 호출할 수 있습니다.
  • **Object.create** 메소드를 이용할 수도 있습니다.

proto

  • 상위 클래스 prototype
profile
반가워요! 사람을 도우는 웹 개발자로 성장하기! :)

0개의 댓글