JavaScript

[JavaScript] Object.assign()

Dana10 2025. 1. 17. 14:10

 

 

๊ฐ์ฒด๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋ฐ›์•„ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ํ•ฉ์ณ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ผ.(๋‹จ, ์›๋ณธ ๊ฐ์ฒด๋“ค์€ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.)๋ผ๋Š” ๋ฏธ์…˜(?)์„ ๋ฐ›์•˜๋‹ค.

 

์ฃผ์˜!! ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์˜ค๋‹ต์ž”์น˜์ž…๋‹ˆ๋‹ค!!! 


function mergeObjs(...objs) {
	return ...objs
}

์ด๊ฑด๊ฐ€? 

๋•ก!

 

์ผ๋‹จ ๋‚˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐฐ์—ด์ด ๋“ค์–ด์˜ค๋ฉด์„œ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์—ฌ์„œ.. returnํ•  ๋•Œ๋„ ๊ทธ๋Œ€๋กœ ๋‚ด๋ณด๋‚ด๋ฉด ๋  ์ค„ ์•Œ์•˜๋‹ค.๐Ÿคฃ

ํ•˜์ง€๋งŒ ๊ทธ๊ฑด ๋‚˜๋งŒ์˜ ์ƒ๊ฐใ…Ž

 

์ €๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์Šคํ”„๋ ˆ๋“œ ํ˜•์‹์œผ๋กœ ๋ฐ›์œผ๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฐฐ์—ด์˜ ํ˜•ํƒœ๋กœ ๋“ค์–ด์˜จ๋‹ค.

function mergeObjs(...objs) {
  console.log(objs); // [{ x: 1, y: 2 },{ y: 3, z: 4 )]
  console.log(...objs); // { x: 1, y: 2 } { y: 3, z: 4 )
  return ...objs
}

const a = { x: 1, y: 2 };
const b = { y: 3, z: 4 );
mergeObjs(a,b);

 

๊ทธ๋ž˜์„œ objs๋ฅผ ์ฝ˜์†”์— ์ฐ์œผ๋ฉด ๋ฐฐ์—ด์— ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค์ด ๋‹ด๊ธด ์ฑ„๋กœ ์ถœ๋ ฅ์ด ๋˜๊ณ ,

๋‚ด๊ฐ€ returnํ•œ ...objs๋“ค์€ ๊ทธ๋ƒฅ ๋ฐ›์€ ๊ฐ์ฒด ๊ทธ๋Œ€๋กœ์˜ ๋‚˜์—ด์ด ๋œ๋‹ค.

์ง€๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ •๋ง ๋ฉ์ฒญํ•˜๊ตฐ..๐Ÿ˜…

 

๊ทธ๋ž˜์„œ ๊ทธ ๋‹ค์Œ์œผ๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€

function mergeObjs(...objs) {
  return Object.assign(...objs);
}

const a = { x: 1, y: 2 };
const b = { y: 3, z: 4 );
console.log(mergeObjs(a,b)); // { x: 1, y: 3, z: 4 }

์ฝ˜์†”์„ ์ฐ์–ด๋ณด๋‹ˆ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค.

ํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋Œ๋ ค๋ณด๋‹ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ..

์ฝ˜์†”์„ ์ฐ์–ด๋ณด๋‹ˆ ์›๋ณธ ๊ฐ์ฒด๋“ค์ด ๋ฐ”๋€Œ์–ด๋ฒ„๋ ธ๋‹ค.

 

๋ญ์•ผ! ๋ญ๊ฐ€ ๋ฌธ์  ๋ฐ mdn ๋ฌธ์„œ๋ฅผ ์ฐพ์•„๋ณด์ž.


* ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์ œ๋Œ€๋กœ ๋œ ์ฝ”๋“œ

์ถœ์ฒ˜ : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

 

์•„. assign์€ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ...sources๋“ค์ด ๋“ค์–ด๊ฐˆ ๊ฐ์ฒด๋ฅผ ๋ฐ›๋Š”๊ตฌ๋‚˜.

๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ๊ฐ์ฒดa์— ๊ฐ์ฒดb๊ฐ€ ๋‹ด๊ฒผ๋˜ ๊ฒƒ์ด๋‹ค.

์ฆ‰ ๊ฐ์ฒดa์˜ ์›๋ณธ์ด ์ˆ˜์ •๋๋‹ค.

 

๋ฌธ์ œ์— ๋งž์ถฐ ์ œ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด

function mergeObjs(...objs) {
  return Object.assign({},...objs);
}

const a = { x: 1, y: 2 };
const b = { y: 3, z: 4 );
console.log(mergeObjs(a,b)); // { x: 1, y: 3, z: 4 }

 

 

์ž˜ ์ž‘๋™ํ•œ๋‹ค!!