๐Ÿ“– ์›์‹œ ๊ฐ’๊ณผ ๊ฐ์ฒด์˜ ๋น„๊ต

c_yjยท2022๋…„ 6์›” 25์ผ
0

DeepDive

๋ชฉ๋ก ๋ณด๊ธฐ
8/42
post-thumbnail

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” 7๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ํฌ๊ฒŒ ์›์‹œ ํƒ€์ž…๊ณผ ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ ๊ตฌ๋ถ„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์›์‹œ ํƒ€์ž…์˜ ๊ฐ’, ์ฆ‰ ์›์‹œ ๊ฐ’์€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๋‹ค. ์ด์— ๋น„ํ•ด ๊ฐ์ฒด ํƒ€์ž…์˜ ๊ฐ’, ์ฆ‰ ๊ฐ์ฒด๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๋‹ค.

  • ์›์‹œ ๊ฐ’์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด ๋ณ€์ˆ˜(ํ™•๋ณด๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„)์—๋Š” ์‹ค์ œ ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค. ์ด์— ๋น„ํ•ด ๊ฐ์ฒด๋ฅผ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด ๋ณ€์ˆ˜(ํ™•๋ณด๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„)์—๋Š” ์ฐธ์กฐ ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค.

  • ์›์‹œ ๊ฐ’์„ ๊ฐ–๋Š” ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅด ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด ์›๋ณธ์˜ ์›์‹œ ๊ฐ’์ด ๋ณต์‚ฌ๋˜์–ด ์ „๋‹ฌ๋œ๋‹ค. ์ด๋ฅผ ๊ฐ’์— ์˜ํ•œ ์ „๋‹ฌ์ด๋ผ ํ•œ๋‹ค. ์ด์— ๋น„ํ•ด ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅด๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด ์›๋ณธ์˜ ์ฐธ์กฐ ๊ฐ’์ด ๋ณต์‚ฌ๋˜์–ด ์ „๋‹ฌ๋œ๋‹ค ์ด๋ฅผ ์ฐธ์กฐ์— ์˜ํ•œ ์ „๋‹ฌ์ด๋ผ ํ•œ๋‹ค.

โญ๏ธ ์›์‹œ ๊ฐ’

์›์‹œ ํƒ€์ž…์˜ ๊ฐ’, ์ฆ‰ ์›์‹œ ๊ฐ’์€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๋‹ค.

๋ณ€์ˆ˜๋Š” ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ™•๋ณดํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ์ž์ฒด ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ถ™์ธ ์ด๋ฆ„, ๊ฐ’์€ ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋กœ์„œ ํ‘œํ˜„์‹์ด ํ‰๊ฐ€๋˜์–ด ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋งํ•จ. ์ฆ‰, ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์€ ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ’์— ๋Œ€ํ•œ ์ง„์ˆ ์ด๋‹ค.

// const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์žฌํ• ๋‹น์ด ๊ธˆ์ง€๋œ๋‹ค. ์ƒ์ˆ˜๋Š” ์žฌํ• ๋‹น์ด ๊ธˆ์ง€๋œ ๋ณ€์ˆ˜์ผ ๋ฟ์ด๋‹ค.
const o = {};

// const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์„ ์–ธํ•œ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ ์›์‹œ ๊ฐ’(์ƒ์ˆ˜)์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
// ํ•˜์ง€๋งŒ const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์„ ์–ธํ•œ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ ๊ฐ์ฒด๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
o.a = 1; 
conosole.log(o); {a:1}

โญ๏ธ ๊ฐ์ฒด

๊ฐ์ฒด(์ฐธ์กฐ) ํƒ€์ž…์˜ ๊ฐ’, ์ฆ‰ ๊ฐ์ฒด๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๋‹ค.

์›์‹œ ๊ฐ’์€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๋ฏ€๋กœ ์›์‹œ ๊ฐ’์„ ๊ฐ–๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ผ๋ฉด ์žฌํ• ๋‹น ์™ธ์—๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ์ฒด๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•œ ๋ณ€์ˆ˜๋Š” ์žฌํ• ๋‹น ์—†์ด ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.์ฆ‰, ์žฌํ• ๋‹น ์—†์ด ํ”„๋กœํผํ‹ฐ๋ฅผ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ๊ฐฑ์‹ ํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ ํ”„๋กœํผํ‹ฐ ์ž์ฒด๋ฅผ ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

var person = {
  name: 'Lee'
};

//ํ”„๋กœํผํ‹ฐ ๊ฐ’ ๊ฐฑ์‹ 
person.name = "Kim";

//ํ”„๋กœํผํ‹ฐ ๋™์  ์ƒ์„ฑ
person.address = 'Seoul';

console.log(person); // {name: "kim", address: "Seoul"}

์ฐธ์กฐ์— ์˜ํ•œ ์ „๋‹ฌ

// ์ƒ์„ฑ
var person = {
	name: 'Lee'
};

// ์ฐธ์กฐ ๊ฐ’์„ ๋ณต์‚ฌ(์–•์€ ๋ณต์‚ฌ)
var copy = person;

๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด ์›๋ณธ์˜ ์ฐธ์กฐ ๊ฐ’์ด ๋ณต์‚ฌ๋˜์–ด ์ „๋‹ฌ๋œ๋‹ค. ์ด๋ฅผ ์ฐธ์กฐ์— ์˜ํ•œ ์ „๋‹ฌ์ด๋ผ ํ•œ๋‹ค.

profile
FrontEnd Developer

0๊ฐœ์˜ ๋Œ“๊ธ€