반응형
1. Object란?
객체란 간단히 속성과 함수를 가지고 있는 모듈 단위. 즉, 특정한 기능을 하도록 내부에 변수와 외부와의 연동을 위해서 함수를 제공하는 것이다.

2. 속성과 함수
모든 객체는 속성과 함수를 가지고 있다. 그래서 그 객체가 가지고 있는 속성이나 함수를 부르거나 값을 가져오려면,

객체이름.객체속성
객체이름.함수()

객체나 속성도 변수의 일종으로 볼 수 있으며 따라서, 대소문자를 가린다.

객체 이름 뒤에 점을 찍어주면 된다. document.write()처럼....

- 최상위 객체
alert()함수를 앞에 객체도 없이 그냥 마구 쓸 수 있다? 그건 아니다. 최상위에 window라는 객체가 있다. alert()함수는 바로 이 window객체의 함수인 것이다. 즉,

     window.alert();

이렇게 사용하는 것인데, 최상위에 있다보니 지정하지 않은 모든 변수나 함수는 window객체의 속성과 함수가 되는 것이다. 그래서 window.alert()으로 쓰나 그냥 alert()이라고 쓰나 동일한 것이 된다.
더구나 document.write()라고 쓰지만, 사실은 window.document.write()인 것이다.

자바스크립트는 객체에 대한 상당히 유연한 방법을 지원하고 있다. 어떠한 객체가 있을 때 속성을 추가하는 방법은 매우 간단하다. 즉, man 이라는 객체가 이미 존재한다고 할 때, 추가 속성으로 age, company를 더 넣고 싶다면,

man.age = 28;
man.company = "deadfire Co.";

이렇게 하면, man이라는 객체에 두 개의 속성(age, company)가 추가되는 것이다.


3. 객체의 생성과 사용
이미 만들어져서 제공되는 객체나 함수 말고, 사용자가 필요한 객체를 생성할 수 도 있다.

자동차라는 객체를 만들어 보자. 먼저 자동차의 특성을 나타내는 것들을 뽑아보자. 그래야 그 것들을 가지고 속성으로 만들어 줄 테니까, 간단히 자동차의 색상, 모델명, 차주인 이름을 속성으로 갖는다고 하면, 나중에 사용할 모습은 이렇게 될 것이다.

   car.color
   car.model
   car.owner

이러한 속성 값들을 가지도록 만들면 될 것이다. 이제 생성해보자. 자바스크립트에서는 새로운 객체를 만들어 낼 때 속성와 함수가 필요하다. 먼저 함수를 만들면,

//먼저 객체의 함수를 선언
function print(){
   alert(" This Car : " + this.color + ", " + this.model + ", " + this.owner );
}

//객체용 함수 선언
function car(color, model, owner) { //생성자 선언
   this.color = color;
   this.model = model;
   this.owner = owner;
   this.print = print;
}

- this는 this라는 문자가 들어가 있는 가장 바깥쪽의 괄호의 주인을 가리킨다. 즉, this는 car라는 함수 자신이 되는 것이다. 정확히 말하면 생성되는 객체 자체를 가리킨다. new라는 연산자에 의해서 생성되는 객체를 this가 지칭한다.

다음과 같이 mycar라는 인스턴스를 생성하고, 사용할 수 있게 되는 것이다.

var mycar = new car("빨간색", 1010, "deadfire"); // 인스턴스생성
mycar.print();  //해당 인스턴스 정보출력

이미 생성된 인스턴스에 새로운 속성(Property, Attribute)를 추가하고 한다면, 단순히 해당 인스턴스에 새로운 속성을 할당만하면 된다. 위에서 새로 생성된 mycar라는 인스턴스에 등급(grade)를 추가하려면 다음과 같이 하면된다.

mycar.grade = "1"; //프라퍼티 첨가

객체에 속한 모든 값
앞에서 for ... in...에 대해서 간단히 살펴보았었다. 이 기능을 확용하면, 객체가 가지고 있는 모든 속성이나 함수에 뭐가 있는지 한번에 볼 수 있다. 위에서 생성한 mycar라는 인스턴스를 예로들면,

var mesg = "";
for (obj in mycar){ // mycar에 속하는 각 obj
   mesg += obj + "\n";
}
alert(mesg);


[출처]Deadfire(http://deadfire.hihome.com)
반응형

'공부 > Javascript' 카테고리의 다른 글

내장객체  (0) 2011.07.11
javascript 문법  (0) 2011.06.20
Javascript 기초  (0) 2011.06.17
Javascript란?  (0) 2011.06.15

+ Recent posts