본문으로 바로가기

객체란 무엇인가?

category JavaScript/Core & 개념ㆍ용어 2016. 9. 29. 09:06


Object

자바스크립트의 거의 모든 것은 객체이다.


이는 기본 데이터타입인 boolean, number, string 그리고 특별한 값인 undefined, null을 제외한 나머지는 모두 객체이기 때문이다.

하지만 boolean, number, string 인 기본 데이터타입은 모두 객체처럼 다룰 수도 있다.

그렇기 때문에 자바스크립트는 null과 undefined를 제외한 모든 것을 객체로 다룰 수 있다.



객체(Object)란 단지 이름이 지정된 프로퍼티(property)의 모음이며, 키(key) : 값(value)의 쌍으로 이루어진 목록이다.

자바스크립트에서 기본 데이터타입은 하나의 값만을 가지는 데 비해, 참조 타입인 객체는 여러 개의 프로퍼티를 포함할 수 있다.

여기서 참조 타입이라 함은 객체의 실제 위치를 가리키는 포인터이다.



객체 리터럴 방식으로 객체 생성하는 방법

var obj = {
prop1 : '문자열', // string
prop2 : 2015, // number
prop3 : true, // boolean
prop4 : { }, // 객체 리터럴
prop5 : [], // 배열
prop6 : function() {} // 함수
};

/*
이렇게 객체의 프로퍼티는 다양한 타입들을 포함한다.
여기서 prop6과 같이 프로퍼티의 값이 함수인 경우 이러한 프로퍼티를 method(메소드)라고 부른다.
하여 함수와 메소드는 엄격히 말해 구분되는 용어이다.
*/

// prop6를 호출
obj.prop6(); // 간단히 말해 마침표(.)표기법으로 이루어진 것을 메소드




생성자 함수를 이용한 객체 생성하는 방법

자바스크립트에서는 객체를 생성할때 내장 Object()인 빌트인 생성자 함수를 제공한다.

객체를 생성하는 함수를 생성자 함수라고 부르는데 자세한 설명은 다음에~


//Object()를 이용해서 obj 빈 객체를 생성
var obj = new Object();

// obj 객체 프로퍼티를 생성
obj.prop1 = '문자열';
obj.prop2 = 30;
obj.prop3 = function() {};

console.log(typeof obj); // object
console.log(obj);
// {prop1: "문자열", prop2: 30, prop3: function}



객체는 기능(method)과 속성(property)을 가지고 있다. (속성들의 집합)

객체만이 메소드를 소유할 수 있다.


객체.속성이름() => 객체의 메소드를 실행.

객체.속성 => 객체의 속성 값을 가져온다.

객체.속성 = 값셋팅;  => 속성값을 설정하거나 설정되어 있는 값을 바꿀 수 있다.




Jaehee's WebClub