JavaScript‎ > ‎

객체


객체
객체는 0개 이상의 속성값으로 이루어진 리스트이며 속성값은 { }안에 표현한다. 문장의 시작부분에 객체를 사용하
게되면 {이 블록의 시작으로 해석될 수도 있으므로 사용해서는 안된다.
var Sales = "Toyota";
function CarTypes(name) {
if(name == "Honda")
return name;
else
return "Sorry, we don't sell " + name + ".";
}
car = {myCar: "Saturn", getCar: CarTypes("Honda"), special: Sales}
document.write(car.myCar); // Saturn
document.write(car.getCar); // Honda
document.write(car.special); // Toyota
속성명은 숫자, 문자, 객체가 될 수도 있다.
car = {manyCars: {a: "Saab", b: "Jeep"}, 7: "Mazda"}
document.write(car.manyCars.b); // Jeep
document.write(car[7]); // Mazda



사용자 정의 객체
속성 접근
objectName.propertyName
값을 할당하면 속성을 정의할 수 있다. 객체도 다른 객체의 속성이 될 수 있다.
myCar.make = "Ford";
myCar.model = "Mustang";
myCar.year = 1969;
속성은 자바스크립트에서 내부적으로 배열(연관배열)과 동일한 자료구조로 표현되므로,
myCar["make"] = "Ford"
myCar["model"] = "Mustang"
myCar["year"] = 1967
객체의 생성
Object Initializer:
objectName = {property1:value1, property2:value2,..., propertyN:valueN}
Constructor Function
function car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
mycar = new car("Eagle", "Talon TSi", 1993);
자바스크립트1.1 이후부터는 이름으로 지정한 속성은 이름으로만, 인덱스로 지정한 속성은 인덱스로만 접근할 수 있
다. HTML DOM을 사용할 때는 예외.
메서드 정의
object.methodname = function_name
메서드 호출
object.methodname(params);
this : 현재 객체를 참조
delete 연산자 : 속성의 제거. var를 사용하지 않은 전역 변수의 제거.
delete myobj.a;
g = 17;
delete g;
Comments