์๋ฐ์คํฌ๋ฆฝํธ 4์ฅ์์ ๊ฐ์ฒด ๋ณต์ฌ์ ๋ํ ๋ด์ฉ์ ๋ค๋ฃจ๋ค๊ฐ
Object.assign() ์ ํตํด ๋ณต์ฌ๊ฐ ๊ฐ๋ฅํ๋ค๋ ์๊ธฐ๋ฅผ ์ ๊น ํ์๋๋ฐ,
์์ธํ ๋ชจ๋ฅด๋ ์ด๋ฒ ๊ธฐํ์ ์ง๊ณ ๋์ด๊ฐ๋ณด์
Object.assign()
์ฐ์ MDN ์์ ํ๋ ์ค๋ช ์ ๋ณด๋ฉด
The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object. It will return the target object.
๋์ ๊ฐ์ฒด๋ก ํ๋ ๋๋ ๊ทธ ์ด์์ ์ด๊ฑฐ ๊ฐ๋ฅํ ํ๋กํผํฐ๋ฅผ ํ๊ฒ์ค๋ธ์ ํธ ๋ณต์ฌํ ๋ ์ฌ์ฉ.. ํ๋ค๊ณ ํ๋๋ฐ, ๊ธ๋ง ๋ด์๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
์ฐ์ ๋ฌธ๋ฒ์ ์ดํด๋ณด๋ฉด,
Object.assign(target, …sources)
parameter
- target
- sources
return
- target Object
์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ธ target ์ ์ค๋ช
์ target object ๋ฅผ ๊ฐ๋ฆฌํค๊ณ , sources ๋ 1๊ฐ ํน์ ๊ทธ ์ด์์ ์ด๊ฑฐ ํ๋กํผํฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ ์ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐํ๊ฐ์ target object ์ด๋ค.
๋ฌธ๋ฒ์ ์์๋ดค์ผ๋, ๊ฐ๋จํ ์์ ๋ฅผ ๋ณด๋ฉด.
|
|
{} ์ obj์ ํ๋กํผํฐ๋ฅผ ๋ณต์ฌ(?) ํ๊ณ , obj ์ copy ๋ ๋ณ๊ฐ์ ๊ฐ์ฒด๋ก ๋ณผ ์ ์๋ค.
์ด๊ฐ์ด obj ์ ์์ฑ์ด ๊ฐ์ผ ๊ฒฝ์ฐ์ ๋ณ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค. ํ์ง๋ง ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ๊ฒฝ์ฐ์๋ ์๊ธฐ๊ฐ ๋ฌ๋ผ์ง๋๋ฐ
|
|
1๊ณผ 2์ ๊ฒฝ์ฐ์์๋ ๊ฐ ์์ฒด์ด๋ฏ๋ก ์๋ก ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.
ํ์ง๋ง, 3๊ณผ ๊ฐ์ด ๊ฐ์ฒด์ ๊ฒฝ์ฐ์๋ ์์ ๋ณต์ฌ
๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ์ฐธ์กฐ๊ฐ์ ๋ณต์ฌํ๊ฒ ๋๋ค.
MDN ์์๋ ๊น์ ๋ณต์ฌ๋ฅผ ํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ํ๋ผ๊ณ ์๊ธฐํ๋๋ฐ
|
|
JSON ์ ํตํ์ฌ obj1 ์ ๋ฌธ์์ด๋ก ๋ณํํ๊ณ , ๋ค์ ๊ฐ์ฒด๋ก ๋ง๋๋ ๊ณผ์ ์ ํตํ๋ ๊ฒ์ด๋ค. (๋ฌธ์์ด๋ก ๋ง๋ ์์ ์์ ์ฐธ์กฐ ์ฃผ์๊ณ ๋ญ๊ณ ์์ ๊ฒ ๊ฐ๊ธด ํ๋ค.)
์๊ณ ์ํด์ ์์ฑํ ๋ด์ฉ์ ์ฌ๊ธฐ์ ๋์ด์ง๋ง, assign ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ผ๋, ์ข ๋ ์ ์ด๋ณด๊ฒ ๋ค.
1. ๊ฐ์ฒด ๋ณํฉ
|
|
- ์ดํ์ ๋ถ๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํด ๊ณต๋ถ๋ฅผ ๋ ํ ํ ๊ฐ๋ ์ ์๋ฉด ํ์ ํ๋ ๊ฒ์ผ๋ก…
2. ์ฌ๋ณผ ํ์ ํ๋กํผํฐ ๋ณต์ฌ
3. ํ๋กํ ํ์ ์ฒด์ธ์ ์์ฑ, ์ด๊ฑฐ๋ถ๊ฐ ํ๋กํผํฐ๋ ๋ณต์ฌ ๋ถ๊ฐ
4. ํ๋ฆฌ๋ฏธํฐ๋ธ ๋ ๊ฐ์ฒด๋ก ๋ํ
|
|
๋ฌธ์์ด๋ง ์ด๊ฑฐ ๊ฐ๋ฅํ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด๋ง ๋ณต์ฌ๊ฐ ๋จ์ ์ ์ ์๋ค.
5. ๋ณต์ฌ์ค ์์ธ ๋ฐ์
6. ์ ๊ทผ์ ๋ณต์ฌ
์ ์ด๋ณด๋ ค๊ณ ํ์ผ๋ ๋ชจ๋ฅด๋ ๊ฒ ๋๋ฌด ๋ง๋ค.
์ฐธ๊ณ ๋ก, Object.assign() ์ ๊ฒฝ์ฐ ์ต์คํ๋ก๋ฌ์์๋ ๋์ํ์ง ์๋๋ค๊ณ ํ๋ค.