자바스크립트

[JS]프로토타입

민ズl 2024. 10. 10. 19:07
  • 자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어
  • 자바스크립트는 객체 기반의 프로그래밍 언어이며 자바스크립트를 이루고 있는 거의 "모든 것"이 객체
    (원시 타입을 제외한 나머지)
  • Prototype 객체는 생성자 함수에 의해 생성된 각각의 객체에 공유 프로퍼티를 제공하기 위해 사용함
  • 모든 객체는 내부에 숨겨진 프로토타입을 갖음
  • 외부에서 직접 접근할 수 없지만, 생성자 함수의 prototype을 통해 접근 가능
  • 부모 객체의 프로토타입을 통해 자식 객체에 속성을 상속
  • 객체 간의 상속은 프로토타입 체인을 통해 연결
  • 메서드를 프로토타입에 정의하면, 모든 인스턴스가 공유하여 메모리를 절약
  • 프로토타입은 런타임에 수정할 수 있어, 객체의 메서드나 속성을 동적으로 추가하거나 변경 가능

프로토타입 객체의 변경

function Person(name) {
  this.name = name;
}

var foo = new Person('Lee');

// 프로토타입 객체의 변경
Person.prototype = { gender: 'male' };

var bar = new Person('Kim');

console.log(foo.gender); // undefined
console.log(bar.gender); // 'male'

console.log(foo.constructor); // ① Person(name)
console.log(bar.constructor); // ② Object()

 

 

 

[mdn 공식문서]

 

상속과 프로토타입 - JavaScript | MDN

JavaScript는 동적 타입이고 정적 타입이 없기 때문에, (Java 또는 C++와 같은) 클래스 기반 언어에 경험이 있는 개발자에게는 약간 혼란스럽습니다.

developer.mozilla.org

[위키 프로토타입 기반 프로그래밍]

 

프로토타입 기반 프로그래밍 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 프로토타입 기반 프로그래밍은 객체지향 프로그래밍의 한 형태의 갈래로 클래스가 없고, 클래스 기반 언어에서 상속을 사용하는 것과는 다르게, 객체를 원형(

ko.wikipedia.org

 

'자바스크립트' 카테고리의 다른 글

[JS]this  (2) 2024.10.12
[JS]클로저(Closure)  (0) 2024.10.10
[JS]비동기(async/await)  (0) 2024.10.10
[JS]비동기(프로미스)  (1) 2024.10.10
[JS]단축평가  (1) 2024.10.09