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"];
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 = "Subaru";
goodCar.model = "Forester";
goodCar.year = 2005;
객체의 속성은 리터릴명이나 대괄호를 사용하여 접근 할 수 있습니다.
// goodCar.make = "Holden"; 는 아래와 같습니다.
goodCar["make"] = "Holden";
goodCar["make"] = "Holden";
요번에는 toString()이라는 메서드를 goodCar클래스에 추가 하도록 하겠습니다.
function CarToString() {
return this.make + " " + this.model + " (" + this.year + ")";
}
goodCar.toString = CarToString;
alert(goodCar.toString());
return this.make + " " + this.model + " (" + this.year + ")";
}
goodCar.toString = CarToString;
alert(goodCar.toString());
위의 예제를 살펴보면 자바와 자바스크립트의 또 한가지 차이점은 객체의 메서드나 필드를 추가하는 시점입니다.
자바에서는 객체의 메서드나 필드가 정의되는 시점은 클래스를 컴파일 하는 시점이나,
자바스크립트에서 객체의 메서드나 속성의 정의는 아무때나 가능하다는 것입니다.