
JS는 프로토타입 기반 객체지향 언어이다. ES6에서 class 문법이 도입되기 전까지 프로토타입으로 상속을 구현했다고 한다.
프로토타입과 class는 각각 어떤 아이일까
오승환님 블로그는 나중에 내가 읽고 싶어서...
shout out to GPT!!! 지피티 사랑해!!🫶
JavaScript에서 객체 지향 프로그래밍을 위해 사용되는 두 가지 주요 접근 방식은 프로토타입 기반과 클래스 기반이 있음. 각각의 특징과 차이점을 알아보겠음.
JavaScript 초기부터 사용되었던 프로토타입 기반 방식은 다음과 같음
// 생성자 함수 정의
function Person(name) {
this.name = name;
}
// 프로토타입에 메서드 추가
Person.prototype.greet = function() {
return `안녕하세요, ${this.name}님!`;
};
// 객체 생성
let person1 = new Person('Alice');
console.log(person1.greet()); // 출력: 안녕하세요, Alice님!
프로토타입 체인을 통해 객체 간에 메서드와 속성을 공유하며, 상속 관계를 설정ES6에서 도입된 클래스 기반 방식은 다음과 같음
// 클래스 정의
class Person {
constructor(name) {
this.name = name;
}
greet() {
return `안녕하세요, ${this.name}님!`;
}
}
// 객체 생성
let person1 = new Person('Alice');
console.log(person1.greet()); // 출력: 안녕하세요, Alice님!
first and foremost, 프로토타입은
지저분..아니 가독성이 너무 떨어짐
