๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“’ JavaScript

[JS Tam9์ƒํ™œ] #4 Primitive VS Object (Reference)

by Tamii 2021. 7. 18.
๋ฐ˜์‘ํ˜•

๐Ÿ“’11- ์›์‹œ ๊ฐ’๊ณผ ๊ฐ์ฒด

Primitive Object(reference)
์›์‹œ ํƒ€์ž… ๊ฐ์ฒด(์ฐธ์กฐ)ํƒ€์ž…
๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•จ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•จ
๋ฉ”๋ชจ๋ฆฌ์— ์‹ค์ œ ๊ฐ’ ์ €์žฅ ๋ฉ”๋ชจ๋ฆฌ์— ์ฐธ์กฐ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ์ €์žฅ

Primitive ์›์‹œ๊ฐ’

์›์‹œ๊ฐ’์€ ๋ฐ์ดํ„ฐ ๋ถˆ๋ณ€์„ฑ์œผ๋กœ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚˜๋„ ๋ถˆ๋ณ€ํ•˜๊ณ , ์ด๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ ์‹ ๋ขฐ์„ฑ์œผ๋กœ ๋ณด์žฅํ•œ๋‹ค.

๋ณ€์ˆ˜์™€ ๊ฐ™์€ ์‹๋ณ„์ž๋Š” ๊ฐ’์ด ์•„๋‹Œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ๋‹ค.

var a= 10
b =a

๋‘ ๋ณ€์ˆ˜์˜ ์›์‹œ ๊ฐ’์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ๋œ ๋ณ„๊ฐœ์˜ ๊ฐ’
์„œ๋กœ ๊ฐ„์„ญํ•˜์ง€ ์•Š๋Š”๋‹ค.

Object ๊ฐ์ฒด

Java, C++ (ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด)

์‚ฌ์ „์— ์ •์˜๋œ class ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์ฒด ์ƒ์„ฑ
์ •ํ•ด์ง„ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉ

JavaScript

ํด๋ž˜์Šค ์—†์ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋™์ ์œผ๋กœ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•จ

๊ฐ์ฒด์˜ ํŠน์ง•

  • ๊ฐ์ฒด์— ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด ๋ณ€์ˆ˜๋Š” ๊ฐ’์ด ์•„๋‹ˆ๋ผ ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์ž‡๋Š” ์ฐธ์กฐ๊ฐ’(reference value)์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค
  • ์›์‹œ๊ฐ’์„ ๊ฐ–๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์žฌํ• ๋‹น ๋ฐ–์— ๋ฐฉ๋ฒ•์ด์—†์ง€๋งŒ,
    ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•œ ๋ณ€์ˆ˜๋Š” ์žฌํ• ๋‹น ์—†์ด ์ž์œ ๋กญ๊ฒŒ ํ”„๋กœํผํ‹ฐ์˜ ์ถ”๊ฐ€, ๊ฐฑ์‹ , ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค
  • ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์‹๋ณ„์ž๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊นŠ์€ ๋ณต์‚ฌ์™€ ์–•์€ ๋ณต์‚ฌ

๊นŠ์€ ๋ณต์‚ฌ (์›์‹œ๊ฐ’ ๋ณต์‚ฌ)

const a = 1
const b = a
  • ์™„์ „ํ•œ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ ๋‹ค
  • ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“ค์–ด ์žฌํ• ๋‹น์„ ํ†ตํ•ด ๊ต์ฒด
  • ์ค‘์ฒฉ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด๊นŒ์ง€ ๋ชจ๋‘ ๋ณต์‚ฌ

์–•์€ ๋ณต์‚ฌ (๊ฐ์ฒด ๋ณต์‚ฌ)

const a = {name:'Tami'}
const b = a
  • ๊ฐ์ฒด์— ์ค‘์ฒฉ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด๋Š” ์ฐธ์กฐ๊ฐ’์„ ๋ณต์‚ฌ๋‘๊ฐœ์˜ ์‹๋ณ„์ž๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๊ณต์œ ํ•œ๋‹ค๋Š” ๊ฒƒ?์‚ฌ๋ณธ์ด ์›๋ณธ์„ copy ํ•˜๊ฒŒ ๋˜๋ฉด ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋Š” ๋‹ค๋ฅด์ง€๋งŒ ๋™์ผํ•œ ์ฐธ์กฐ๊ฐ’(reference)์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

์›๋ณธ๊ณผ ์‚ฌ๋ณธ ๋ชจ๋‘ ๋™์ผํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋จ

๋Œ“๊ธ€