본문 바로가기

Web/JavaScript

객체

<배열>

- 정보의 양이 많아졌을 때 정리 정돈하기 위해서 사용

- 순서에 따라 정보를 저장

- 배열 리터럴: 대괄호 []

 

 

<객체>

- 순서 없이 정보 저장

- 다시 꺼낼 일이 있기 때문에 마구잡이로 집어넣으면 안 되고 이름과 함께 저장해야 한다.

- 이름이 있는 정리 정돈 상자

- 오브젝트 리터럴: 중괄호{}

 

 

 

- 객체의 쓰기와 읽기

→ 객체 생성

객체 생성

- 정보를 그냥 넣으면 안 되고 이름을 붙여서 넣어야 한다. (ex. "programmer" : "egoing")

 

 

 

 

→ 객체에서 정보 꺼내오기

정보 꺼내오기

- coworkers.designer의 .은 object access operator, 즉 coworkers라는 객체에 접근하는 operator이다.

- document.write(): document 객체에 html 콘텐츠를 삽입

- +는 문자열 연결

 

 

 

 

→ 객체 생성 후에 정보 추가

정보 추가

- coworkers.bookkeeper = "duru"; coworkers 객체에 정보의 이름 (bookkeeper) 직접 적어주고 저장할

  정보(duru) 추가

 

 

+)

잘못된 추가 방식

- 이름에 띄어쓰기가 있으면 .(object access operator)로 연결할 수 없다.

- 이름에는 공백을 넣을 수 없다.

 

 

공백이 있는 이름 저장하기

- 이름에 공백이 존재할 시 대괄호를 사용해 안에 따옴표를 통해 문자열을 쓰면 잘 저장할 수 있다.

 

 

 

 

- 객체와 반복문

→ 객체의 데이터를 순회(Iterate)하는 방법

Iterate

- 배열에서 반복문을 써서 데이터를 다 불러오는 것처럼 객체의 데이터를 다 불러오기 위해 Iterate를 사용한다.

- for (variable in object) { ... } 

 

- for (var key in coworkers) {

         document.write(key+'  :  '+coworkers[key]+'<br>');

   }

→ 객체 coworkers에 들어있는 key값들을 하나하나 꺼내서 변수 key값으로 설정해 중괄호에 있는 코드를 실행한다.

      결국, key값의 수만큼 반복 실행된다.

→ coworkers에 있는 특정한 데이터를 가져올 때 배열의 형식을 사용해 index 자리에 key값을 넣었더니          데이터를 가져올 수 있다. (ex. coworkers["data scientist"], coworkers[key])      

 

 

 

cf) 배열에서는 순서가 정해져 있어 index(ex. 0, 1, 2)라고 하고, 객체에서는 순서가 정해져 있지 않고 정보를 식별할 수          있는 이름을 붙이므로 key(ex. programmer, bookkeeper)라고 한다.

 

 

 

 

- 객체의 property와 method

 

property와 method

- 객체에는 함수도 담을 수 있다. 그 함수를 메소드(method)라고 한다.

- 객체에 소속된 함수: 메소드 (method) ex) showAll

- 객체에 소속된 변수: 프로퍼티(property) ex) programmer, bookkeeper

 

- coworkers.showAll = function() {

       for(var key in this) {

              document.write(key+'   :   '+this[key]+'<br>');

           }

}

→ coworkers라는 객체에 showAll이라는 메소드를 추가 

 

- showAll이라는 함수 안에서 함수가 소속되어 있는 객체를 가리키는 약속된 기호: this

   this를 쓰지 않고 coworkers를 써주면 객체의 이름이 바뀌었을 때 데이터를 불러올 수가 없게 된다.