본문 바로가기
Programming & Platform/JavaScript

자바스크립트 프로토타입으로 배우는 객체 생성과 상속의 모든 것

by 코드스니펫 2024. 3. 12.
반응형

자바스크립트 프로토타입으로 배우는 객체 생성과 상속의 모든 것

 

Javascript logo

 

자바스크립트의 깊은 이해를 위해서는 프로토타입이라는 중요한 개념을 반드시 알아야 합니다. 이는 객체지향 프로그래밍의 핵심 원리 중 하나로, 자바스크립트에서 객체의 상속과 재사용을 가능하게 합니다.

 

프로토타입을 통해 객체를 생성하고, 특정 기능을 여러 객체에 상속하는 방법을 배우는 것은 효율적인 코드 작성을 위한 필수적인 지식입니다. 이번 글에서는 프로토타입의 개념을 소개하고, 이를 활용한 객체 생성과 메서드 상속 방법에 대해 알아보겠습니다.

 

 

자바스크립트 프로토타입

 

돋보기로 찾는 아이콘

 

프로토타입이란?

프로토타입은 자바스크립트에서 객체를 만들기 위한 템플릿(원형)입니다. 모든 자바스크립트 객체에는 [[Prototype]]이라는 내부 속성이 있으며, 이는 다른 객체에 대한 참조를 가집니다. 이 참조된 객체를 '프로토타입'이라고 하며, 객체가 생성될 때 메서드와 속성을 상속받습니다.

 

 

프로토타입을 사용한 객체 생성

프로토타입을 사용하여 비슷한 객체를 여러 개 생성할 수 있는 방법에 대해 알아보겠습니다. 기본적인 아이디어는 '객체 생성 기계'를 만드는 것입니다. 이는 function 문법을 사용하여 구현할 수 있습니다.

 

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

Machine.prototype.attack = function() {
    console.log(this.name + ' attack!');
};

let machine1 = new Machine('Robot');
machine1.attack(); // "Robot attack!" 출력

 

위 예제에서 Machine 함수는 객체를 생성하는 생성자 함수로 사용되며, new 키워드와 함께 호출될 때 새로운 객체를 생성합니다. prototype 속성을 사용하여 Machine 객체에 공통 메서드를 추가할 수 있으며, 이 메서드는 모든 Machine 인스턴스에 상속됩니다.

 

지구 모양을 중심한 각종 도구들 아이콘

 

프로토타입의 상속

프로토타입 체인을 통해 객체는 그 프로토타입의 속성과 메서드를 상속받습니다. 만약 객체에서 요청한 속성이나 메서드를 찾을 수 없으면, 자바스크립트는 객체의 프로토타입에서 해당 속성이나 메서드를 찾습니다. 이 과정은 프로토타입 체인을 따라 계속 상위로 올라가며 검색이 이루어집니다.

 

let parent = {
    name: 'Parent',
    attack: function() {
        console.log(this.name + ' attack!');
    }
};

let child = Object.create(parent);
child.name = 'Child';
child.attack(); // "Child attack!" 출력

 

위 예제에서 child 객체는 parent 객체를 프로토타입으로 상속받습니다. Object.create 메서드는 주어진 프로토타입을 상속받는 새로운 객체를 생성합니다.

 


 

끝으로

프로토타입은 자바스크립트의 강력한 특징 중 하나로, 객체의 상속과 재사용성을 높여주는 중요한 메커니즘입니다. 이를 통해 개발자는 보다 효율적이고 체계적인 코드를 작성할 수 있게 됩니다. 본 글을 통해 프로토타입에 대한 이해를 높이고, 이를 활용하여 다양한 문제를 해결하는 능력을 기르시길 바랍니다. 프로토타입을 마스터함으로써 자바스크립트와 객체지향 프로그래밍에 한 걸음 더 가까워지길 바랍니다.

 

▼ javascript의 다른 문법들 ▼

 

 

JavaScript 함수에서 forEach와 return 사용 시 주의사항, 해결방법

JavaScript 함수 에서 forEach와 return 사용 시 주의사항, 해결방법 코드 내에서 JavaScript의 forEach 함수를 사용하면서 반복을 돌면서 특정 조건에 따라 함수를 종료하고 싶은 상황을 마주했습니다. 하지

lemonlog.tistory.com

 

 

JavaScript includes 간편 사용법, 구문, 예시 코드

JavaScript에서 includes 간편 사용법, 구문, 예시 코드 JavaScript에서 includes 메서드는 배열 내에서 특정 요소의 존재를 확인하는 유용한 기능 중 하나입니다. 이 메서드는 특정 값이 배열에 포함되어

lemonlog.tistory.com