개발/javascript

객체 리터럴01 - 객체란?

마루쨩 2023. 9. 25. 21:43

"객체 리터럴"

 

1. 객체란?

자바스크립트는 객체(object) 기반의 프로그래밍 언어이며 자바스크립트를 이루고 있는 거의 "모든 것"이 객체이다. 원시 값을 제외한 나머지 값들(함수, 배열, 정규 표현식 등)은 모두 객체이다.

 

원시 타입은 단 하나의 값만을 나타내지만 객체 타입(object / reference type)은 다양한 타입의 값(원시 값 또는 다른 객체)들을 하나의 단위로 구성한 복합적인 자료 구조(Data structure)이다. 또한 원시 타입의 값, 즉 원시 값은 변경 불가능한 값(immutable value)이지만 객체 타입의 값, 즉 객체는 변경 가능한 값(mutable value)이다. 예를 들어 변수 x에 할당 된 값 1을 직접적으로 변경할 수 없고, 재할당을 통해서만 변수값을 바꿀 수 있다. 이처럼 원시값은 변경이 불가능한 값이다.

 

자바스크립트의 객체는 키(key)와 값(value)으로 구성된 프로퍼티(Property)들의 집합이다.

이것은 객체 리터럴로 생성 된 객체이다.

자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있다. 따라서 프로퍼티 값으로 함수를 사용할 수도 있다. 프로퍼티 값이 함수일 경우 일번 함수와 구분하기 위해 메소드(Method)라 부른다.

객체는 값과 동작으로 이루어져 있다.

 이처럼 객체는 프로퍼티와 메소드로 구성된 집합체이다. 프로퍼티와 메소드의 역할은 아래와 같다.

  • 프로퍼티: 객체의 상태를 나타내는 값(data)
  • 메소드: 프로퍼트(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior)

이와 같이 객체는 객체의 상태를 나타내는 값(프로퍼티)과 프로퍼티를 참조하고 조작할 수 있는 동작(메소드)를 모두 포함할 수 있기 떄문에 상태와 동작을 하나의 단위로 구조화할 수 있어 유용하다.