객체(object)는 이름 붙은 값들의 모음이다. 보통 이 이름 붙은 값들을 객체의 프로퍼티(property)라고 부른다(종종 객체의 필드(field)라고 부르기도 하지만 다소 혼동을 줄 여지가 있다). 객체 프로퍼티를 참조하려면 객체 이름을 쓰고 이어서 마침표와 프로퍼티 이름을 적어 주면 된다. 예를 들어, image라는 이름의 객체에 width와 height라고 이름 붙은 프로퍼티 두 개가 있다면 다음과 같은 방식으로 이 프로퍼티들을 참조할 수 있다.

image.width
image.height


객체 프로퍼티는 많은 부분이 자바스크립트 변수와 닮았다. 프로퍼티는 배열이나 함수, 객체를 포함안 어떠한 타입의 값이라도 담을 수 있다. 여러분은 다음과 같은 자바스크립트 코드를 보게 될 것이다.

document.myform.button


이 코드는 어떤 객체의 button 프로퍼티를 참조하는데 그 객체는 다시 document라는 객체의 myform 프로퍼티에 저장되어 있다.
앞에서 언급한 바와 같이 함수가 객체 프로퍼티로 저장될 경우 그 함수를 흔히 메서드라고 부르며, 이 경우 객체 프로퍼티 이름은 메서드 이름이 된다. 객체 메서드를 호출할 때는 객체로부터 함수 값을 추출하기 위해 .을 사용하고 함수를 호출하기 위해 ()를 사용한다. 예를 들어, document라는 객체의 write() 메서드를 호출하려면 다음과 같이 코드를 작성하면 된다.

document.write("this is a test");


자바스크립트에서 객체는 연관 배열(associative array)의 역할도 수행한다. 즉, 객체는 임의의 문자열에 임의의 값을 연결한다. 객체가 이러한 방식으로 사용될 경우 객체 프로퍼티에 접근할 때는 다른 문법을 사용한다. 이때는 접근하려는 프로퍼티 이름을 나타내는 문자열을 대괄호로 둘러싸면 된다. 이 문법을 사용하여 다음과 같이 앞에서 본 image 객체 프로퍼티에 접근할 수 있다.

image["width"]
image["height"]


연관 배열은 많은 프로그래밍 기법에 사용되는 아주 효과적으로 사용될 수 있는 데이터 타입이다. 7장에서는 전통적인 방식대로 객체를 사용하는 방법과 연관 배열의 형태로 객체를 사용하는 방법을 설명한다.