- 자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어
- 자바스크립트는 객체 기반의 프로그래밍 언어이며 자바스크립트를 이루고 있는 거의 "모든 것"이 객체
(원시 타입을 제외한 나머지) - 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()
상속과 프로토타입 - 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 |