๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ฐ์ ํ๋์ ๊ฐ์ฒด๋ก ํฉ์ณ ๋ฐํํ๋ ํจ์๋ฅผ ๋ง๋ค์ด๋ผ.(๋จ, ์๋ณธ ๊ฐ์ฒด๋ค์ ์์ ํ์ง ์์์ผ ํ๋ค.)๋ผ๋ ๋ฏธ์ (?)์ ๋ฐ์๋ค.
์ฃผ์!! ์ฌ๊ธฐ์๋ถํฐ ์ค๋ต์์น์ ๋๋ค!!!
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 ๋ฌธ์๋ฅผ ์ฐพ์๋ณด์.
* ์ฌ๊ธฐ์๋ถํฐ ์ ๋๋ก ๋ ์ฝ๋
์. 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 }
์ ์๋ํ๋ค!!
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] Spread Operator & Rest Operator (0) | 2025.01.20 |
---|---|
[JavaScript] Null ๋ณํฉ ์ฐ์ฐ์ (??) vs ๋ ผ๋ฆฌ OR ์ฐ์ฐ์ (||) (0) | 2025.01.20 |
[JavaScript] this๋ฅผ ๋ด ๋ง์ ๋๋ก ์ฎ์ด๋ณด์! - call(), apply(), bind() (0) | 2025.01.17 |
[JavaScript] ๋ฐฐ์ด์์ ์ค๋ณต์ ๊ฑฐ๋ฅผ ํ๋ ๋ฐฉ๋ฒ (0) | 2025.01.16 |
[JavaScript] Array.prototype.splice() (0) | 2025.01.16 |