[JS] 프로토타입, class 비교

Chen·2024년 6월 14일
0

Javascript

목록 보기
17/22
post-thumbnail

궁금증

JS는 프로토타입 기반 객체지향 언어이다. ES6에서 class 문법이 도입되기 전까지 프로토타입으로 상속을 구현했다고 한다.
프로토타입과 class는 각각 어떤 아이일까

오승환님 블로그는 나중에 내가 읽고 싶어서...


shout out to GPT!!! 지피티 사랑해!!🫶

프로토타입 기반 vs 클래스 기반 JavaScript 객체 생성 방식 비교

JavaScript에서 객체 지향 프로그래밍을 위해 사용되는 두 가지 주요 접근 방식은 프로토타입 기반과 클래스 기반이 있음. 각각의 특징과 차이점을 알아보겠음.

1. 프로토타입 기반 객체 생성

JavaScript 초기부터 사용되었던 프로토타입 기반 방식은 다음과 같음

  • 객체 생성: 생성자 함수와 prototype 프로퍼티를 사용하여 객체를 생성
// 생성자 함수 정의
function Person(name) {
    this.name = name;
}

// 프로토타입에 메서드 추가
Person.prototype.greet = function() {
    return `안녕하세요, ${this.name}님!`;
};

// 객체 생성
let person1 = new Person('Alice');
console.log(person1.greet()); // 출력: 안녕하세요, Alice님!
  • 상속: 프로토타입 체인을 통해 객체 간에 메서드와 속성을 공유하며, 상속 관계를 설정

2. 클래스 기반 객체 생성

ES6에서 도입된 클래스 기반 방식은 다음과 같음

  • 클래스 정의: class 키워드를 사용하여 클래스를 정의하고, constructor 메서드와 다른 메서드를 클래스 내부에 선언
// 클래스 정의
class Person {
    constructor(name) {
        this.name = name;
    }

    greet() {
        return `안녕하세요, ${this.name}님!`;
    }
}

// 객체 생성
let person1 = new Person('Alice');
console.log(person1.greet()); // 출력: 안녕하세요, Alice님!
  • JavaScript에서는 프로토타입 기반과 클래스 기반 두 가지 방식을 통해 객체를 생성하고 관리할 수 있음. 각 방식은 사용 환경과 개발자의 선호에 따라 선택될 수 있음.

결론

first and foremost, 프로토타입은 지저분..아니 가독성이 너무 떨어짐

profile
현실적인 몽상가

0개의 댓글