본문 바로가기

프로그래밍/JavaScript

[JavaScript 요약 정리] 9. 객체(Object)

9. 객체(Object)

1) 객체 개요

- 자바스크립트의 자료형 6개 중 하나

- Map 객체와 같이 key-value 형식으로 구성

- 객체 생성 방법

var object = { key1:value1, key2:value2... };

- key는 식별자외에도 문자열로도 선언 가능

var object = { '$!#$!#':'what' }; // 키는 문자열 '$!#$!#' 값은 "'what"'

// object.'$!#$!#' // 에러 발생 (Unexpected string)

object['$!#$!#'] // "what" 반환


2) 특징

- 일반적인 프로그래밍 이론에서는 {배열값: 요소element, 객체값: 속성property} 이지만 자바스크립트에서는 다르지 않음

- 객체의 함수요소 내에서 this는 객체 자신을 가리킴

- 객체는 for 반복문을 이용해 객체 속성을 다룰 수 없음 -> for in 반복문 사용


3) in, with 키워드

- in키워드: 객체 안에 키가 존재하는지 확인(true or false 반환)

- 사용방법: '키' in 객체명

- in키워드 사용 예시

object = { name:david };

'name' in david // true 반환


- with키워드: 특정 객체를 선택해서 코드 작성

- 사용방법: with(객체명) { 코드 }

- with키워드 사용 예시

console.log('a');

console.log('b');

console.log('c');

를 아래와 같은 형태로 변환 가능

with(console){log('a');log('b');log('c');};


4) 객체 활용

- 빈 객체 생성: var 객체명 = { };

- 객체 추가: 객체명.키=속성; (모든 타입 추가 가능)

- 속성 제거: delete() 메소드 사용 (ex. delete(객체명.속성);)

- 배열로 객체 다루기

var users=[];

users.push({ id:'abc', name:'lee', age:20 });

users.push({ id:'def', name:'park', age:25 });

users.push({ id:'ghi', name:'kim', age:23 });

- 객체 내에 메소드를 추가해서 자바의 클래스처럼 사용 가능


5) 값 복사

- 기본자료형의 값 복사: 기본자료형(숫자, 문자열, 불)을 복사할 때는 값을 완전히 복사

- 객체 혹은 배열의 값 복사: 값의 참조주소를 복사(복사한 값 수정시 원본도 수정됨, 비독립)

- clone() 메소드를 이용하면 깊은 복사 가능