JS

보다 나은 자바스크립트 - 객체

아거스 2010. 12. 9. 01:39

자바스크립트에는 Array, Boolean, Date, Function, Math, Number, RegExp, String의 내장객체가 있습니다.

다음과 같이 new연산자를 사용하여 각 객체의 인스턴스를 생성 할 수 있습니다.

var friends = new Array();
friends[0] = "Me";
friends[1] = "You";
// 아래는 Array리터럴을 사용한 경우
var otherFriends = ["Steve", "Pete"];

자바스크립트에서의 객체는 간단히 말해 자바에서의 맵과 같은 속성의 집합이라고 말 할 수 있습니다.

또한 최신 버전의 자바스크립트에서는 다음과 같이 객체를 리터럴 형태로 작성 할 수 있습니다.

var goodCar = {make: "Subaru", model: "Forester", year: 2005};

또한 아래처럼 작성 할 수 있습니다.

var goodCar = new Object();
goodCar.make = "Subaru";
goodCar.model = "Forester";
goodCar.year = 2005;

객체의 속성은 리터릴명이나 대괄호를 사용하여 접근 할 수 있습니다.

// goodCar.make = "Holden"; 는 아래와 같습니다.
goodCar["make"] = "Holden";

요번에는 toString()이라는 메서드를 goodCar클래스에 추가 하도록 하겠습니다.

function CarToString() {
  return this.make + " " + this.model + " (" + this.year + ")";
}
goodCar.toString = CarToString;

alert(goodCar.toString());

위의 예제를 살펴보면 자바와 자바스크립트의 또 한가지 차이점은 객체의 메서드나 필드를 추가하는 시점입니다.

자바에서는 객체의 메서드나 필드가 정의되는 시점은 클래스를 컴파일 하는 시점이나,
자바스크립트에서 객체의 메서드나 속성의 정의는 아무때나 가능하다는 것입니다.