๐Ÿง‘‍๐Ÿ’ป Web/JavaScript

[JS] ์ฐธ์กฐ์— ์˜ํ•œ ์ „๋‹ฌ - ๊นŠ์€ ๋ณต์‚ฌ์™€ ์–•์€ ๋ณต์‚ฌ

Lennon 2021. 11. 25. 16:09
728x90
๋ฐ˜์‘ํ˜•

์—ฌ๋Ÿฌ๊ฐœ์˜ ์‹๋ณ„์ž๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฌด์—‡์„ ์˜๋ฏธํ• ๊นŒ?

 

let obj = {
	name: 'Park'
};

let obj2 = obj; // ์–•์€ ๋ณต์‚ฌ

obj2.name = 'Lee';

console.log(obj);  // name = 'Lee'
console.log(obj2); // name = 'Lee'

 

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

์ด ๋ง์€ ์ƒˆ๋กญ๊ฒŒ {name = 'Park'} ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋‘ ๊ฐœ์˜ ์‹๋ณ„์ž๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๊ณต์œ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. 

์ฆ‰ obj์™€ obj2๋Š” ๋ชจ๋‘ ๋™์ผํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฅดํ‚ค๊ณ , ์›๋ณธ ๋˜๋Š” ์‚ฌ๋ณธ ์–ด๋Š ํ•œ์ชฝ์—์„œ ๊ฐ์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.

 

let obj = {
	name: 'Park'
};

let obj2 = {...obj}; // ๊นŠ์€ ๋ณต์‚ฌ

obj2.name = 'Lee';

console.log(obj);  // name = 'Park'
console.log(obj2); // name = 'Lee'

 

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

 

 

์ƒˆ๋กœ์šด ๊ฐ์ฒด์— ๋ณ€์ˆ˜๋ฅผ ํ• ๋‹นํ•  ๋•Œ ์˜ํ–ฅ์„ ๊ฐ™์ด ๋ฐ›์•„์•ผํ•œ๋‹ค๋ฉด ์–•์€ ๋ณต์‚ฌ๋ฅผ, ์„œ๋กœ ์˜ํ–ฅ์„ ๋ฐ›์œผ๋ฉด ์•ˆ๋˜๋Š” ์ƒํ™ฉ์ด๋ฉด ๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด 

์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ์˜ค๋ฅ˜๋ฅผ ํ”ผํ•˜์ž.

 

 

728x90
๋ฐ˜์‘ํ˜•