DevLog

์–•์€ ๋ณต์‚ฌ(Shallow Clone) ๋ณธ๋ฌธ

๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๊ฐœ๋ฐœ๊ฐœ๋ฐœ/javascript

์–•์€ ๋ณต์‚ฌ(Shallow Clone)

Seungjae Lee 2021. 6. 9. 22:57

์–•์€ ๋ณต์‚ฌ(Shallow Clone)

- Object.assign()

์šฐ์„ , ๊ฐ์ฒด์˜ ์†์„ฑ์„ ๋ณต์‚ฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” Object.assign()์ž…๋‹ˆ๋‹ค.

์ฒซ๋ฒˆ์งธ ์ธ์ž๋กœ ๋“ค์–ด์˜ค๋Š” ๊ฐ์ฒด์—๋‹ค๊ฐ€ ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ๋“ค์–ด์˜ค๋Š” ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋“ค์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

const obj = { a: 1, b: 2 } 
const target = { c: 3 } 

const copiedObj = Object.assign(target, obj) 

console.log(copiedObj) //{c: 3, a: 1, b: 2}

Object.assign()์—๊ฒŒ๋„ ํ•œ๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์žˆ๋Š”๋ฐ์š”.

๋ณต์‚ฌํ•˜๋ ค๋Š” ๊ฐ์ฒด์˜ ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด๋Š” ์™„์ „ํ•œ ๋ณต์‚ฌ๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€์•Š๋Š”๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

const person = { 
	age: 100, 
    name: { 
    	first: "junwoo", last: "park", 
    }, 
} 

const copied = Object.assign({}, person) 

person.age = 1000 
person.name.first = "paul" 

console.log(copied.age) // 100 
console.log(copied.name.first) // 'paul'

person๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ฐ”๊ฟจ๋”๋‹ˆ, copied ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ฐ”๋€๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

https://junwoo45.github.io/2019-09-23-deep_clone/

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด ๋ณต์‚ฌํ•˜๊ธฐ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ฐธ ๋งŽ์Šต๋‹ˆ๋‹ค.

junwoo45.github.io

 

Comments