Javascript

자바스크립트 객체 정의와 생성 방법, 프로퍼티

2023. 3. 29. 23:18
목차
  1. 객체란?
  2. 프로퍼티
  3. 자체 프로퍼티
  4. 상속받은 프로퍼티
  5. 객체 생성
  6. 객체 리터럴
  7. new 키워드
  8. Object.create() 함수
  9. 요약

객체에 대해 설명해 봐야 한다면 뭐라고 해야 할까요?

 

객체란?

객체에 대한 짧은 정의는 이렇습니다

  • 자바스크립트의 가장 기본적인 데이터 타입
    자바스크립트의 타입은 원시 타입과 객체 타입으로 나뉘어지죠
  • 프로퍼티의 순서없는 집합
    const 객체 = { name: '김객체' , human: false }

객체는 자신만의 프로퍼티를 가지고, 프로토타입으로 불리는 다른 객체에서 프로퍼티를 상속받기도 합니다.
자바스크립트가 프로토타입 기반의 객체지향 프로그래밍 언어라고 불리우는 이유입니다.

 

프로퍼티

프로퍼티는 이름과 값으로 이루어져 있습니다.
이름은 문자열이나 심벌 타입을 가집니다. 보통 대부분의 이름은 문자열입니다.
값은 이름과 다르게 타입을 가리지 않습니다. 어떤 타입도 가능하고 getter나 setter 또는 둘다가 될 수도 있습니다.

 

프로퍼티는 자체 프로퍼티와 상속받은 프로퍼티가 있습니다.

 

자체 프로퍼티

객체에서 직접 정의한 멍멍이 객체에 age라는 자체 프로퍼티가 생겼습니다.
또한 멍멍이는 Object.prototype 이라는 객체 메서드를 상속합니다.

let 멍멍이 = {} 
멍멍이.age = 3

상속받은 프로퍼티

프로토타입 객체에서 상속한 뎅뎅이 객체는 멍멍이와 Object.prototype에서 프로퍼티를 상속합니다.

let 뎅뎅이 = Object.create(멍멍이)
뎅뎅이.age // 3

Object.create()는 객체를 생성하는 함수입니다.

 

객체 생성

객체를 생성하는 방법들이 있습니다. 

 

객체 리터럴

모두에게 익숙한 방법이네요.

객체 리터럴은 콜론으로 이름과 값을 구분하고, 이 쌍들을 콤마로 구분해 중괄호로 감싼 형태입니다.

let x = {} // 프로퍼티가 없는 개체
let abc = { a: 0, b: 1, c: 2 }

new 키워드

new 연산자는 객체를 생성하고 초기화합니다.

new 키워드 뒤에는 반드시 함수 호출이 있어야 합니다. 이런 함수를 생성자라고 부릅니다.

이 생성자는 새로 생성된 객체를 초기화합니다.
우리가 익히 알고 있는 자바스크립트에 내장된 생성자들이 있습니다.

let obj = new Object();
let arr = new Array();
let day = new Date();
let map = new Mpa();

Object.create() 함수

첫번째 인자를 프로토타입 삼아 새 객체를 생성합니다.

let xy = Object.create({x: 1, y: 2}) 
xy.x + xy.y //3

xy객체는 x와 y 프로퍼티를 상속합니다.

이 첫번째 인자에 null을 전달할 수도 있습니다. null을 프로토타입 삼는 것이 되는데
즉, 프로토타입이 없는 객체가 생성됩니다.
이렇게 생성된 객체는 아무것도 상속하지 않으며 기본 메서드조차 없는.. 정말 뭐가 없는 객체입니다.

let empty = {} 
let empty2 = new Object()

객체 리터럴과 new 연산자를 이용해 생성한 빈 객체입니다.
Object.create() 함수에서도 null 없이도 일반적인 빈 객체를 만들 수 있습니다.

let obj = Object.create(Object.prototype)

Object.prototype을 전달하여 일반적인 프로토타입을 가진 빈 객체가 생성됩니다.

 

요약

  • 객체는 자바스크립트의 대표적인 타입이다.
  • 프로퍼티를 가질 수 있고, 프로토타입이라는 객체로 인해 다른 객체를 상속받을 수 있다.

'Javascript' 카테고리의 다른 글

XSS공격이란? 사용 예시  (0) 2023.04.28
프로퍼티의 게터와 세터  (0) 2023.04.12
Javascript 객체 복제 Object.assign 요약과 React 적용  (0) 2021.11.22
Javascript 계산기 만들기  (0) 2020.05.10
Javascript 실시간 시계 만들기  (0) 2020.04.28
  1. 객체란?
  2. 프로퍼티
  3. 자체 프로퍼티
  4. 상속받은 프로퍼티
  5. 객체 생성
  6. 객체 리터럴
  7. new 키워드
  8. Object.create() 함수
  9. 요약
'Javascript' 카테고리의 다른 글
  • XSS공격이란? 사용 예시
  • 프로퍼티의 게터와 세터
  • Javascript 객체 복제 Object.assign 요약과 React 적용
  • Javascript 계산기 만들기
개굴이 dev
개굴이 dev
정보를 지식으로 만드는 글쓰기
개굴이 dev
개발공부
개굴이 dev
전체
오늘
어제
  • 분류 전체보기
    • 끄적끄적
    • Javascript
    • React
    • Vue
    • Web
    • HTML
    • CSS(SCSS)
    • 알고리즘
    • Server
      • Node.js
    • Database
      • Mongo
    • Tools
      • Gulp
      • Webpack
    • Design System
    • English
    • Blog

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Algorithm
  • API
  • backend
  • Counter
  • CSS
  • dartSass
  • design system
  • designsystem
  • EDM
  • Email
  • express
  • frontend
  • github
  • gulp
  • home-brew
  • HTML5
  • java
  • Javascript
  • js
  • js-tutorial
  • macbookM1
  • MongoDB
  • node
  • nodejs
  • outlook
  • react
  • SEO
  • Server
  • task runner
  • task-runner

최근 댓글

최근 글

hELLO · Designed By 정상우.
개굴이 dev
자바스크립트 객체 정의와 생성 방법, 프로퍼티
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.