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() 메소드를 이용하면 깊은 복사 가능
'프로그래밍 > JavaScript' 카테고리의 다른 글
[JavaScript 요약 정리] 11. 기본 내장 객체 (0) | 2018.12.30 |
---|---|
[JavaScript 요약 정리] 10. 생성자(Constructor) 함수 (0) | 2018.12.30 |
[JavaScript 요약 정리] 8. 내장 함수(Built-in Function) (0) | 2018.12.30 |
[JavaScript 요약 정리] 7. 함수(Function) (0) | 2018.12.28 |
[JavaScript 요약 정리] 6. 반복문(Loops) (0) | 2018.12.28 |