[모던 JavaScript 튜토리얼] 12. 객체

1 분 소요

객체 생성 방법


let user = new Object(); // '객체 생성자' 문법
let user = {};  // '객체 리터럴' 문법

객체는 위 코드처럼 객체 생성자를 사용해 만들 수도 있으며, 객체 리터럴을 사용해 만들 수도 있다.


프로퍼티


객체 내부에는 키: 값 쌍으로 구성된 프로퍼티가 위치한다. 문자형, 모든 자료형이 가능하다.

프로퍼티 삭제

delete user.age;

delete 연산자를 통해 객체 내부의 프로퍼티를 지울 수 있다.


프로퍼티의 키(이름)

let user = {
  name: "John",
  age: 30,
  "likes birds": true  // 복수의 단어는 따옴표로 묶어야 합니다.
};

여러 단어를 조합해 키를 만드려면, 따옴표가 필요하다.


console.log(user["likes birds"]); // true

위의 likes birds 프로퍼티의 값을 참조하려면, 위와 같이 대괄호 표기법 을 사용해야 한다.


대괄호 표기법

let key = "likes birds";

console.log(user[key]); // true

대괄호 표기법 안에 직접 문자열을 작성하지 않고 변수를 줄 수도 있다.


계산된 프로퍼티


let fruit = prompt("어떤 과일을 구매하시겠습니까?", "apple");

let bag = {
  [fruit]: 5, // 변수 fruit에서 프로퍼티 이름을 동적으로 받아 옵니다.
};

alert( bag.apple ); // fruit에 "apple"이 할당되었다면, 5가 출력됩니다.

계산된 프로퍼티 는 객체 리터럴 안의 프로퍼티가 대괄호로 묶여 있는 프로퍼티를 말한다. 위 코드처럼, 동적으로 프로퍼티 키를 받아올 수 있다.


단축 프로퍼티


function makeUser1(name, age) {
  return {
    name: name,
    age: age,
  };
}

function makeUser2(name, age) {
  return {
    name,
    age,
  };
}

let user = makeUser2("John", 30);
/*
user = {
    name: "John",
    age: 30,
}
*/

위 코드의 함수 makeUser1 과 makeUser2 는 같은 동작을 수행한다.프로퍼티 키와 값이 변수의 이름과 같다면, 생략할 수 있다.


for…in 반복문


for(let key in user) {
    console.log(key);
    console.log(user[key]);
}

for...in 으로 객체를 순회하며 키를 받아올 수 있다.


객체 정렬 방식


let items = {
    "1": "컴퓨터",
    "5": "노트북",
    "stock": 10,
    "2": "마우스",
    "manager": "kim",
}

for(let key in items) {
    console.log(key + ", " + items[key]);
}
/*
1, 컴퓨터
2, 마우스
5, 노트북
stock, 10
manager, kim
*/

객체는 기본적으로 키의 숫자를 오름차순으로, 키가 문자열이라면 객체에 추가한 순서대로 정렬된다.

댓글남기기