프로토타입 언어 (Prototype-based language)
모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체(prototype object)를 가진다는 의미.
프로토타입 체인(prototype chain)
프로토타입 객체도 또 다시 상위 프로토타입 객체로부터 메소드와 속성을 상속 받을 수도 있고 그 상위 프로토타입 객체도 마찬가지입니다. 이를 프로토타입 체인(prototype chain)이라 부르며 다른 객체에 정의된 메소드와 속성을 한 객체에서 사용할 수 있도록 하는 근간입니다.
정확히 말하자면 상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 prototype이라는 속성에 정의되어 있습니다.
객체지향이 왜 좋을까 ? (객체지향 vs 절차지향)
객체지향언어란?
컴퓨터 프로그래밍의 한가지 기법으로 객체를 만들고 객체를 사용하는 프로그래밍 방법을 말한다고 볼 수 있습니다.
다시 말해서 프로그램을 그저 데이터와 처리방법으로 나누는게 아니고, 프로그램을 다수의 "객체"를 만들고, 이들이 서로 상호작용을 통해 만들어지는 방식이다.
컴퓨터(PC)를 예로 들어 보겠습니다. 컴퓨터 한대를 완성하려면 CPU, RAM, BOARD, SSD, HDD, VGA, POWER, CASE 등 여러가지 부품이 있어야 합니다.
부품 하나하나가 연결이되고 조립이 되어야 여러분들이 사용하는 컴퓨터의 기능이 제대로 작동되고 사용 할 수있게 됩니다.
여기서 컴퓨터 부품(주변기기)들을 객체라고 생각하시면 됩니다.
각 부품들의 역할이 나뉘어져 있고 사용하고자 하는 부분에 대해서 각 부품들이 작동을 하게 됩니다.
고장이 나더라도 해당 부품만 수리 및 교체를 하면 간단하게 해결할 수 있습니다. 그렇기 때문에 유지보수도 쉽고 편해집니다.
즉, 명령어들로 이루어진 목록이 아닌 하나하나의 독립된 "객체"들의 그룹으로 생각하면 되고, 객체간의 메시지를 주고 받음으로서 쉽게 연결이 가능합니다.
하지만 객체지향이 무조건 좋은건 아님!!!
메모리 관리가 중요하다면 - > 메모리를 적게쓰는 절차지향