[JavaScript] ④ 자바스크립트 객체란 무엇일까?

2020. 6. 20. 14:40·개발/JavaScript

자바스크립트는 객체 기반 언어다. 자바스크립트는 객체 기반 프로그래밍 언어이며, 원시 값을 제외한 모든 값은 객체다. 즉, 함수, 배열, 정규 표현식 등이 모두 객체다. 객체는 프로퍼티(property)로 구성되며, 프로퍼티는 키(key)와 값(value)로 구성된다. 프로퍼티의 값이 함수일 경우 이를 메소드(method)라 한다.

객체의 의해

비유를 통해 우선 객체의 개념을 이해해보자. 우리는 실생활에서 객체의 예시를 살펴볼 수 있다. 집에서 키우는 고양이, 사용 중인 키보드, 스마트폰 등이 모두 객체다. 이러한 객체들은 상태(state)를 갖거나 행동(behavior)을 한다. 예를 들어, 고양이의 경우 이름, 눈동자 색, 종, 꼬리 모양 등의 상태와 더불어 꾹꾹이, 뛰어 오르기, 잠자기 등의 행동을 한다.

 

정리하자면 객체란 키와 값(또는 함수일 경우 메소드)으로 구성된 '것'이라 할 수 있다. 다른 말로 하자면, 키와 값 형태로 데이터를 저장할 수 있으며, 관련 동작들을 변수에 저장할 수 있는 데이터 타입을 의미한다.

객체 선언 방법

자바스크립트에서 객체는 다음과 같이 변수 이름을 선언한 다음 {} 안에 key: values , 형태로 선언한다.

let cat = {
    name: "Jiyou",
    age: 3
};

객체 사용 방법

객체의 키 값에 접근하기

위의 예시를 바탕으로 cat 객체의 이름과 나이에 접근해 보자. 우리는 객체의 이름 뒤에 .를 찍고 접근하고자 하는 키를 입력해 이에 해당하는 값을 얻을 수 있다. 또한 객체의 키 값을 대괄호 안에 넣어서도 동일하게 접근할 수 있다.

cat.name; // "Jiyou"
cat.age; // 3

cat['name']; // "Jiyou"
cat['age']; // 3

객체의 키에 접근하기

그렇다면 키에는 어떻게 접근할 수 있을까? 이때는 Object.keys(cat);을 사용하면 된다. 결과적으로 cat 객체의 키들이 배열로 반환된다. 특정한 키에만 접근하고자 할 때는 Object.keys(cat)[0];과 같이 인덱스를 지정해주면 된다.

Object.keys(cat); // -> ["name", "age"];
Object.keys(cat)[0]; // -> "name"

객체 내 메소드 생성하기

cat 객체 안에 함수인 메소드를 포함할 수도 있다. 앞서 언급했듯, 메소드는 프로퍼티 값이 함수인 경우를 의미한다. 즉, 객체 내에서 특정 일을 수행하는 하나의 동작을 구현할 수 있다.

let cat = {
    name: "Jiyou",
    age: 3,
    meow() {
        alert("meow!")
    }
};

cat.meow(); // "meow!"

객체 안에 객체 생성하기

우리는 다음과 같이 객체 안에 또 다른 객체를 선언할 수도 있다.

let cat = {
    name: "Jiyou",
    age: 3,
    color: {
        eyes: "black",
        body: "white"
  }
};

cat.color.eyes // "black"

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

자바스크립트 고차 함수(higher-order function)란?  (0) 2020.06.21
자바스크립트 스코프란? 글로벌, 로컬, 렉시컬 스코프 뜻  (0) 2020.06.19
자바스크립트 do while 반복문  (0) 2020.06.19
'개발/JavaScript' 카테고리의 다른 글
  • Returing과 Mutating 차이점 (정리 중)
  • 자바스크립트 고차 함수(higher-order function)란?
  • 자바스크립트 스코프란? 글로벌, 로컬, 렉시컬 스코프 뜻
  • 자바스크립트 do while 반복문
휘Hwi
휘Hwi
여행, 사진, 개발, 책 이야기를 기록하는 여행자 휘의 블로그 𓂍
  • 휘Hwi
    휘: 끝나지 않은 이야기
    휘Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 기록
        • 일상 에세이
        • 인사이트
        • 투자와 재테크
        • 코인 이야기
        • 아카이빙
        • 집무실 레터
        • 사랑에 대하여
        • 번역 이야기(完)
        • 프리랜서 일지(完)
      • 여행
        • 🌎 세계 여행기 S1 (完)
        • 🌊 삼삼한 여행기 (完)
        • 🚶 온더로드
        • 🇯🇵 일본
        • 🏝️ 발리
        • 🇻🇳 베트남
        • 🇱🇰 스리랑카
        • 🇮🇳 인도
        • 🇹🇭 태국
        • 🇸🇬 싱가포르
        • 🇦🇺 호주
        • 🇭🇰 홍콩
        • 🇰🇷 한국
        • 🍚 여행자의 한 끼
        • ℹ️ 여행 정보
      • 사진
        • 사진가
        • 사진 이론과 생각
        • 사진 관련 정보
      • 영상
        • 파이널컷 모션 공부
        • 고프로 GoPro
        • 영상 관련 정보
      • 책
        • 책 읽고 쓰기
      • 개발 N
        • 티스토리
        • Internet
        • HTML
        • CSS
        • JavaScript
        • Typescript
        • React
        • Node.js
        • Express
        • NestJS
        • Python
        • Django
        • MySQL
        • MongoDB
        • AWS
        • Deployment
        • Terminal
        • Git N
        • Glossaries
        • Articles
        • Projects
        • TIL;
      • 미분류
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
휘Hwi
[JavaScript] ④ 자바스크립트 객체란 무엇일까?
상단으로

티스토리툴바