Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

roadmap

5. 객체 본문

web programming/JavaScript

5. 객체

kdw_w 2020. 8. 5. 20:01

 

 

객체는 이름으로 구성된 프로퍼티의 집합이다

리터럴이나 생성자를 이용해서 만들 수 있다

 

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