자바스크립트는 객체 기반의 프로그래밍 언어다. 자바스크립트를 이루고 있는 거의 모든 것이 객체다.
원시 타입(primitive)
의 값을 제외한 나머지 값들( 함수, 배열, 정규표현식 등
)은 모두 객체다.프로토타입 기반의 객체지향 프로그래밍
이 존재한다.여러 개의 독립적 단위, 즉
객체(object)의 집합
으로 프로그램을 표현하는 것 실세계의 실체를 인식하는 철학적 사고를 프로그래밍에 반영한 것
속성(property)
을 가진다.인식하거나 구별
한다.
추상화(abstraction)
: 객체의 다양한 속성 중에서프로그램에 필요한 속성만 간추려 내여 표현하는 것
객체
라고 표현할 수 있다.
상태(state)
를 나타내는 프로퍼티(property)
행동(behavior)
을 표현하는 메서드(method)
상태 데이터와 동작을 하나의 논리적인 단위로 묶은 복합적인 자료구조
// person 이라는 객체
// "name(이름)", "address(주소)"라는 속성(property)으로 표현하도록 가정
const person = {
name: 'WI',
address: 'Incheon'
}
// circle 이라는 객체
const circle = {
// 원의 반지름 프로퍼티(상태)
radius: 5,
// 원의 지름을 구하는 메서드(행위)
getDiameter() {
return 2 * this.radius;
},
// 원의 둘레를 구하는 메서드(행위)
getPerimeter() {
return 2 * Math.PI * this.radius;
},
// 원의 넓이를 구하는 메서드(행위)
getArea() {
return Math.PI * this.radius ** 2;
}
}
상속(inheritance)
: 어떤 객체의 프로퍼티 or 메서드를 다른 객체가 상속받아 그대로 사용할 수 있는 것
프로토타입을 기반으로
상속을 구현하여 불필요한 중복을 제거
→ 즉, 코드를 재사용
다음 예시를 보자.