javascript 객체(Object)란?

자바스크립트에서 객체란?

일단 자바스크립트는 객체지향 언어이고, 객체란 일종의 숫자, 문자열과 같은 데이터 형태 중 하나이다.

자바스크립트의 객체를 설명하기 앞서 객체(Object:오브젝트)라는 말을 간단히 설명하고 가겠다. (이미 안다면 그냥 넘어가시길…) 프로그래밍 영역에서 객체(Object:오브젝트) 어떤 의미일까? 영어로는 물건, 물체등으로 해석된다. 컴퓨터 용어의 Object도 영어의 그것과 크게 다르지 않다.

사람은 어떤 물건, 예를들어 자동차와 같은 물체를 인식(or이해)할 수 있다. 예를 들어 아래의 자동차를 차에대해 전혀 모르는 친구에게 설명해본다고 하자.

<br>

이 차의 회사는 쉐보레이고, 차종은 카마로 범블비 에디션이고, 색상은 노란색이며, 바퀴는 4개 달려있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var car1 = {
company: '쉐보레',
wheels: 4,
color: '#FFE400', //노란색 RGB 색상표
name : '카마로 범블비 에디션',
'배기량' : '5000',
transform : function(){
console.log('범블비로 변신');
},
run : function(){
console.log("범블비 달린다!");
}
};

function do_something(car1); // 이차로 무언가 해봐!, 분해를 하던, 폐차를 하던

당신이 자바스크립트에서 변수라는 것을 알고 있다면 car1 이라는 것이 카마로라는 자동차의 설명 정보를 담고 있다는 것을 어렴풋이 느낄수 있을것이다. 그리고 do_something 이라는 함수에 car1 을 전달인자로 넘겨 버렸다. 위 소스의 car1이 자바스크립트에서 객체이다.

쉽게 말해서 프로그래밍 영역에서 객체란 어떤 대상의 복합적인 데이터를 담고 있는 데이터이다. 당신이 알고 있는 어떤 무언가(대상)를 다른 사람에게 설명하듯이 컴퓨터에게 그것들을 인식시키기 위해 그 대상의 특징(element)를 만들고 그 특징에 대한 설명정보를 담고 있는 것, 그것을 객체라고 부른다. 그리고 보통 이 객체라는 단위의 자료형(type)을 가지고 있는 프로그래밍 언어를 객체지향언어(객체라는 개념과 객체지향 프로그래밍을 지원)라고 부른다. 그리고 자바스크립트는 객체를 지원하는 객체지향 언어이다.

자바스크립트의 객체의 특징

  • 자바스크립트 객체는 프로퍼티를 갖는다. 그리고 프로퍼티는 데이터프로퍼티와 접근자프로퍼티 두 종류가 있다.
  • 자바스크립트 객체는 메소드를 갖는다.
  • 숫자, 문자열, 불린값, null, undefined 같은 기본 타입을 제외한 모든 값은 객체다. (함수, 배열, 정규표현식 등)
  • 클래스라는 개념이 없다.(java, c++와의 객체와 약간 생성, 사용방법이 다르다.)
  • 자바스크립트 객체는 참조타입이다.