### 객체(Object)
* JavaScript에서는 다른 객체지향 언어와 달리 클래스 없이 생성 가능
* JavaScript는 이러한 이유로 객체 기반의 스크립트 언어로 불리고, 많은 부분이 객체로 존재해 매우 중요한 개념
* 자기 자신이 가진 속성을 이용할 때, 반드시 this 키워드를 이용해야 함. JavaScript의 경우 생략 자체가 불가.
- 변형 가능한 속성들의 집합
- 이름과 값이 있는 속성들이 포함하는 컨테이너
- 데이터를 모으고 구조화하는데 유용
- 객체에 없는 속성값 접근 시, undefined 출력
Number, String, Boolean = 유사객체
Array, Function, 정규표현식 등 참조 타입이 객체인 것들 = 객체
## 속성이름
- 빈 문자열을 포함해 어떤 문자열이나 숫자 가능
- 사용 가능한 식별자
- 예악어가 아닐 경우, 속성 이름을 감싸고 있는 따옴표를 생략할 수 있음
## 속성값
- 객체를 포함해 값을 나타내는 어떤 표현식도 가능
- 이 값이 함수일 때, 해당 속성을 method라고 부름
- [] 표기법 : 객체 뒤 대괄호 안에 속성 이름을 적어 접근
- . 표기법 : 객체 뒤 마침표를 찍고, 속성 이름을 적어 접근, 일반적으로 많이 사용
* 단, 키워드 혹은 키워드 포함하는 내용인 경우, 반드시 []표기법
## in 키워드
- 독립적 사용 시, 확인하고자 하는 속성이 객체 안에 있는지 확인 가능
- 속성이름을 적을 때는 ''를 사용
속성 in 객체 : 존재(true)/부재(false)
# for in문
- 객체에 포함된 모든 속성에 대해 반복 실행
- 단순 for문을 이용해 객체 속성을 확인하기 어려움
- 각 반복의 시작부분에서 변수의 값 : 객체의 다음 속성 / 배열의 인덱스
- 반복문 안에서 변수를 사용해 객체 속성 혹은 배열 요소 참조 가능
for(var i in [객체/배열명]) {
} // 배열의 인덱스나 객체 속성이 왼쪽 변수에 할당됨
## with 키워드
* 사용 시, 최적화에 문제가 생겨, 속도 저하 문제가 발생해 사용 자제 권장
- 반복할 객체 생략하고 속성이나 메서드 사용할 수 있게 함
- 코드의 간결성에 도움
with (객체){
실행 코드
}
## this
- 메서드 호출 시, 해당 메서드를 호출한 객체 참조
- 호출 방식에 따라 다른 객체 참조
- 일반 함수에서 호출하는 경우, 전역객체 참조
- 생성자 함수에서 호출하는 경우, 생성될 객체를 참조
* JavaScript에서는 객체 속성 이름과 객체 외부의 변수 이름이 동일할 경우, 객체의 속성을 우선 시 함, 이러한 문제는 window객체의 내부임을 지정하면 변수를 사용할 수 있음
* 객체를 생성한 후, 속성을 추가/제거 가능
- 객체 생성 후 속성 제거 : 동적으로 속성을 제거
- delete 키워드 뒤에 제거하고자 하는 속성 입력, 키워드 뒤 괄호 사용은 선택사항이며 객체의 속성을 삭제하는 것이지, 객체 자체를 삭제하는 것이 아니며, 메서드도 동일한 방법으로 삭제 가능
* this는 경우에 따라서 다른 객체를 가리킬 수도 있음
- 동적으로 생성된 객체를 가리키는 경우 해당 객체를 의미
'Computer Science > Web' 카테고리의 다른 글
Javascript] 함수 (37) | 2017.01.21 |
---|---|
Javascript] 내장 객체(Built-in Object) (0) | 2017.01.19 |
Javascript] DOM(Document Object Model) (0) | 2017.01.17 |
JavaScript] 내장 객체 (0) | 2016.11.09 |
CSS] CSS 버튼 자동생성기 (0) | 2016.11.08 |