자바스크립트는 객체(object) 기반의 스크립트 언어이며 자바스크립트를 이루고 있는 거의 '모든 것'이 객체이다. 원시값(문자-string, 숫자-number, boolean(true,false), 심볼(symbol), bigint, numm, undefined)을 제외한 나머지 값(함수, 배열, 정규표현식 등)은 모두 객체이다.
자바스크립트의 객치는 키(key)와 값(value)으로 구성된 프로퍼티의 집합니다. 프로퍼티의 값으로 자바스크립트에서 사용할 수 있는 모든 값을 사용할 수 있다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있다. 따라서 프로퍼티 값으로 함수를 사용할 수도 있으며 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메소드라고 부른다.
이와 같이 객체는 데이터를 의미하는 프로퍼티와 데이터를 참조하고 조작할 수 있는 동작을 의미하는 메소드로 구성된 집합니다. 객체는 데이터와 그 데이터에 관련되는 동작을 모두 포함할 수 있기 땜ㄴ에 데이터와 동작을 하나의 단위로 구조화할 수 있어 유용하다.
자바스크립트의 객체는 객체지향의 상속을 구현하기 위해 '프로토타입' 이라고 불리는 객체의 프로퍼티와 메소드를 상속받을 수 있다. 이 프로토타입은 타 언어와 구별되는 중요한 개념이다.
let person = {
name: 'sean',
age: 24
};
name: 'sean'
, age: 24
name
,age
sean
, 24
프로퍼티는 프로퍼티 키(이름)와 프로퍼티 값으로 구성된다. 프로퍼티는 프로퍼티 키로 유일하게 식별할 수 있다. 즉, 프로퍼티 키는 프로퍼티를 식별하기 위한 식별자(identifier). 프로퍼티 키의 명명 규칙과 프로퍼티 값으로 사용할 수 있는 값은 아래와 같다.
let circle = {
radius: 5,
getDiameter: function(){
return 2 * this.radius;
}
};
여기서 radius: 5
가 프로퍼티가 되고, getDiameter: functioin()
가 메소드가 되는것이다.
- 복잡도를 낮추기 위해서 그리고 연관성이 잘 드러난다.
- 사용하지 않으면 메소드나 변수가 한번 더 쓰여지면서 원래의 기능이나 값이 변형될 수도 있다.
- 즉 유지보수가 편하며, 여러사람이 같이하는 프로젝트가 된다면 더욱 복잡해질 수 있어 객체지향 프로그래밍을 사용하는게 좋다.