본문 바로가기

JavaScript/JavaScript

[JavaScript] 객체( key : value )란?

  • 자바스크립트의 객체는 키(key)와 값(value)으로 구성된 프로퍼티(Property)들의 집합이다.
  • 그리고 배열과는 달리 객체는 프로퍼티를 열거할 때 순서를 보장하지 않는다.
  • 정수 프로퍼티는 자동으로 정렬되고, 그 외의 프로퍼티는 객체에 추가한 순서 그대로 정렬된다.
  • Javascript 객체(obeject)의 키(key)는 문자형으로 변환한다.

 

[객체를 생성해보자]

<객체 생성 방법>
1. let a = { };

2. let a = new Object();



1번 방법은 아주 간단하게 객체를 생성하는 방법이다. { } 안에 아무것도 넣지 않으면 빈 객체가 생성된다.
{ } 안에 무언가를 넣고 객체 생성과 동시에 프로퍼티를 넣을 수 있다. 단, 프로퍼티는 key : value 쌍으로 작성하며,
함수도 넣을 수 있다.

2 방법은 생성자 함수를 호출하여 빈 객체를 생성하는 방법이다. 빈 객체 생성 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성 가능하다. 다만 특별한 이유가 없다면 1번을 택하는 게 바람직하다.

[객체를 생성하면서 프로퍼티와 메서드를 같이 넣어보자]

<예제 1>
let a = {
    name : "Kim",
    gender : "male",
    printName : function() {
        console.log("name : " + this.name)
    }
};



위 예제에 만든 객체를 하나씩 살펴보자
a라는 객체가 있으며 이 객체 안에는 "name"과 'gender", 그리고 "printName"라는 이름을 가진 함수를 갖고 있다.
여기서 우리는 a 객체에 접근하여 각각의 프로퍼티들을 다뤄 볼 수 있다.

[생성한 객체를 접근하여 프로퍼티들을 다뤄보자]

<예제 2>
console.log(a); // {name : "Kim", gender : "male", printName : f}
console.log(a.name); // Kim
console.log(a.name = "Lee"); // Lee
console.log(a.gender); // male
a.printName(); // name : Kim


예제 2에서 보다시피 a.name은 원래 "Kim"이다. 하지만 a.name = "Lee"라는 새로운 값을 할당하면 그 값은 갱신된다.

[프로퍼티를 동적으로 생성해 보자]

객체에 없는 프로퍼티를 동적으로 생성하기 위해서는 아래와 같은 방법으로 가능하다.

<예제 3>
a.age = 100;
console.log(a.age); // 100
console.log(a); // {name : "Kim", gender : "male", printName : f, age : 20}



예제 3처럼 기존에 없던 age를 "key" 라 하고 100을 "value"라 하고 이와 같은 방법으로 기존에 없던 프로퍼티를 추가 할 수 있다.

[프로퍼티를 삭제시켜 보자]

<예제 4>
delete a.age;
console.log(a.age); // undefined
console.log(a); // {name : "Kim", gender : "male", printName : f}


delete연산자를 이용하면 객체의 프로퍼티를 삭제 할 수 있다.

'JavaScript > JavaScript' 카테고리의 다른 글

[JavaScript] null / undefined 란  (0) 2022.01.04
[JavaScript] 셋(Set) 이란?  (0) 2021.12.31
[JavaScript] 맵(Map) 이란?  (0) 2021.12.31
[JavaScript] 반복문을 알아보자  (0) 2021.10.20
[JavaScript] 배열(Array) 이란?  (0) 2021.10.14