Computer Science/Web

Javascript] Object(객체)

TwinParadox 2017. 1. 18. 00:30
728x90

### 객체(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는 경우에 따라서 다른 객체를 가리킬 수도 있음

- 동적으로 생성된 객체를 가리키는 경우 해당 객체를 의미

728x90

'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