JavaScript 객체 타입 - 객체 ( object )

반응형

객체 ( object )

객체는 데이터와 그 데이터에 관련한 동작 ( 절차, 방법, 기능 ) 을 모두 포함할 수 있는 개념적 존재이다. 이름 ( key ) 과 값 ( value ) 을 가지는 데이터를 의미하는 프로퍼티와 동작을 의미하는 메소드 ( method )를 포함할 수 있는 독립적 주체이다.

객체의 선언

JavaScript의 객체 선언은 2가지 방법이 있다.

  • 중괄호({})를 사용하여 만드는 방법 - 객체 리터럴 방식
  • Object() 생성자 함수로 객체를 만드는 방법
    보통 첫 번째 방법이 일반적이다
let obj = {
  name : '홍길동',
  age : 21
}; // 선언과 동시에 할당
obj.name = '홍길동';
obj['name'] = '홍길동';
obj.age = 21;
let obj = new Object() // ()안에는 값을 넣는다. 
                       // 그럼 해당 데이터 타입의 객체가 생성된다
let obj = new Object('홍길동');
console.log(obj);
String {'홍길동'}
index 0 = '홍', index 1 = '길' index 2 = '동' // 이런경우는 String
                                            // 객체가 생성되고
let obj = new Object({ name: '홍길동', age: 21});
// 이렇게 하면 위와 똑같다.

둘중 권고하는 방식은 객체 리터럴 방식이다 그 이유는

  1. 코딩하기 편하며 가독성이 좋다.
  2. 속도가 빠르다.
  3. 자바스크립트의 오버라이딩을 방지할 수 있다.

오버라이딩 이란 ?

생성자 함수 new를 이용하여 상속을 하다보면 종종 물려받은 부모의 기능을 그대로 사용하지 않고 재정의해야 할 경우가 발생할 수 있을 때

객체 관련 함수

  • Object.keys()
    객체를 배열로 전환한다. 각각의 index 안에 객체의 key 값이 들어가 있다.
    keys() 괄호안에 object 명을 써준다.
let obj = {
  name: '홍길동',
  age: 20,
  country : '조선'
};
console.log(Object.keys(obj)); // ['name', 'age', 'country']
  • Object.values()
    객체를 배열로 전환한다. 각각의 index 안에 객체의 value 값이 들어가 있다.
let obj = {
  name: '홍길동',
  age: 20,
  country : '조선'
};
console.log(Object.values(obj)); // ['name', 'age', 'country']
반응형