roadmap
5. 객체 본문
객체는 이름과 값으로 구성된 프로퍼티의 집합이다
리터럴이나 생성자를 이용해서 만들 수 있다
1
|
var obj = {1:'do', 2:'JavaScript', 3:5, 'index':'hello, world'}; // 이름:값
|
cs |
객체의 프로퍼티에 접근하는 방법은
다른 언어와 비슷하게 식별자(.)를 이용하거나
[] 를 사용하여 배열처럼 접근 할 수 있다
1
2
3
4
|
var obj = {1:'do', 2:'JavaScript', 3:5, 'index':'hello, world'}; // 이름:값
console.log(obj[1]);
console.log(obj['index']);
console.log(obj.index);
|
cs |
숫자에 접근 할 수 없으므로 obj.1, obj.2 와 같은 코드는 오류가 나온다
for/in을 통해 객체의 프로퍼티를 열거할 수 있다
특정한 순서를 따르지 않으며, 모든 사용자 정의 프로퍼티만 열거한다
미리 정의된 프로퍼티와 메서드는 열거하지 않는다
1
2
3
4
5
6
|
var obj = {1:'do', 2:'JavaScript', 3:5, 'index':'hello, world'}; // 이름:값
var group = "";
for (var key in obj) {
group += key + '\n';
}
alert(group);
|
cs |
모든 프로퍼티를 보고 싶다면 Object.getOwnPropertyDescriptors(obj) 를 입력해보자
javascript의 객체는 완전히 동적이고 이는 프로퍼티도 마찬가지이다
C++/Java의 정적 객체와 완전히 동일하게 사용이 가능하지만
js의 객체는 데이터 값을 임의의 문자열과 연관지을 수 있다
즉, 해시 구조와 더 닮았다고 할 수 있다
따라서 모든 객체의 이름은 데이터를 찾기 위한 인덱스값(키값)이라고 이해하는게 명확하다
아래와 같이 1:'문자열' 와 '1':'문자열' 는 완전히 같은 뜻이다
1
2
3
4
5
6
7
8
|
var obj = {
1:500,
'1':300,
a:11,
'a':'data'
};
console.log(obj); // 뒤의 이름에 덮어씌워진 것을 알 수 있다
|
cs |
자바스크립트의 모든 객체는 Object 클래스를 상속한다
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object
Object에서 다양한 메서드와 프로퍼티를 지원한다
(라이브러리들이 내장되어 있다고 이해해도 된다)
'web programming > JavaScript' 카테고리의 다른 글
7. 예외 처리 (0) | 2020.08.05 |
---|---|
6. 배열 (0) | 2020.08.05 |
4. 값과 참조 (0) | 2020.08.05 |
3. 메모리 구조 (0) | 2020.08.05 |
2. 변수 (0) | 2020.08.04 |