객체: Object - OOP JavaScript

자바스크립트 언어는 완전히 객체지향적이고, 다른 방식으로 사용하는 것이 불가능하기 때문에 객체지향 자바스크립트라는 말 자체는 중복된 말이다. 대부분의 초보 프로그래머들(자바스크립트 프로그래머도 포함된다)에게 부족한 점은 콘텍스트를 사용하거나 코드를 조직화(organizational)하는 일 없이, 단순히 필요한 기능을 구현하는 정도에 그친다는 점이다. 최상의 자바스크립트 코드를 어떻게 작성할 수 있는지 제대로 이해하려면, 자바스크립트가 어떻게 작동하고 여타 언어와 어떻게 다른지 그리고 그러한 점을 어떻게 활용할 수 있는지를 반드시 알아야 한다.
이 장의 나머지 부분에서는 자바스크립트에서 객체지향 코드를 작성하는 방법을 자세히 살펴보고, 이후의 장들을 통해 이렇게 코드를 작성하는 일이 실용적임을 확인한다.

객체(object)는 자바스크립트의 토대이다. 사실상 이 언어에 있는 모든 것이 객체이다. 자바스크립트 언어의 강력함은 대부분 이러한 사실에서 비롯된다. 가장 근본적인 수준으로 내려가면 객체는 프로퍼티들을 모은 것으로 다른 언어에서 볼 수 있는 해시(hash) 자료구조와 거의 같다. 아래의 코드는 프로퍼티로 객체를 생성하는 두 가지 예이다.

간단한 객체를 하나 생성하고 프로퍼티를 설정하는 두 가지 예

							// Object 객체를 만들고 'obj' 안에 저장한다.
							var obj =  new Object();

							// 이 객체의 프로퍼티 몇 개를 다른 값으로 설정한다.
							obj.val = 5;
							obj.click = function () {
								alert("hello");
							};

							// 프로퍼티를 정의하는 키/값 쌍을 {...} 방식으로 나열하여, 
							// 앞의 코드와 동일한 일을 하는 코드다.
							var obj = {
								// 키/값 쌍을 사용해 프로퍼티 이름과 값을 설정한다.
								val : 5;
								click : function () {
									alert("hello");
								}
							};
						

실제로 객체에 관해서는 이것 말고 더 말할 것이 없다. 문제가 조금 복잡해지는 부분은 새로운 객체를 생성할 때인데, 특히 다른 객체의 프로퍼티를 물려 받을 때가 그렇다.