[JS]prototype에 대한 기본 이해

박두팔이·2024년 7월 17일
0

자바스크립트

목록 보기
6/9

prototype?

prototype을 이해하기 위해서는 상속에 대해 먼저 이해해야한다.

상속

  • 새로운 클래스에서 기존 클래스의 모든 프로퍼티와 메소드를 사용할 수 있는 것을 의미한다.
  • 상속은 프로그램의 요구에 맞게 기존 클래스를 수정하여 재사용할 수 있다.

C#이나 C++과 같은 클래스 기반의 객체 지향 언어와는 달리 자바스크립트는 프로토타입 기반의 객체 지향 언어다.

자바스크립트의 프로토타입 방식의 상속과 c#,c++의 클래스기반 상속방식의 정확한 차이에 대해 알아보자.

프로토타입 기반 객체 지향

프로토타입이란?

자바스크립트에서는 모든 객체가 자신의 부모 역할을 하는 또 다른 객체인 프로토타입을 가진다. 객체는 다른 객체의 프로토타입을 상속받아 그 속성이나 메서드를 사용할 수 있다.

let person = {
    name: 'Alice',
    greet: function() {
        console.log('Hello, ' + this.name);
    }
};

let student = {
    __proto__: person,
    study: function() {
        console.log(this.name + ' is studying.');
    }
};

student.greet(); // Hello, Alice
student.study(); // Alice is studying.

여기서 student 객체는 person 객체를 프로토타입으로 설정하여 person 객체의 속성과 메서드를 사용할 수 있다.

클래스 기반 객체 지향

클래스란?

  • 클래스 기반 언어에서는 클래스를 정의하고, 그 클래스를 기반으로 객체를 생성한다. 클래스는 객체의 청사진으로 객체의 상태와 행동을 정의한다.

  • ES6부터 자바스크립트는 클래스 문법을 지원하는데, 프로토타입 기반의 객체 지향을 보다 직관적으로 사용할 수 있다는 장점이 있다.


결론

  • 클래스 기반 언어에서는 클래스가 객체를 생성하는 중심.
  • 프로토타입 기반 언어에서는 객체가 다른 객체를 통해 속성과 메서드를 상속.

자바스크립트는 ES6에서 클래스 문법을 도입했지만, 이는 실제로는 프로토타입 기반의 상속을 보다 쉽게 사용할 수 있게 만든 문법적 설탕(syntactic sugar)이다.

profile
기억을 위한 기록 :>

0개의 댓글