JavaScript

자바스크립트 assign 메소드 가지고 놀기

동띠기 2020. 8. 29. 01:08
728x90

assign메소드는 주로 객체를 복사하거나 병합할떄 사용하는 함수이다. 

함수의 예제 식은 아래와 같다.

Object.assign(target, ...sources)
let espresso = ['espresso'];

let americano = Object.assign( [], espresso);
americano.push('water');

let caffeLatte = Object.assign( [], espresso);;
caffeLatte.push('milk');

let caffeMocha = Object.assign([], caffeLatte);
caffeMocha.push('chocolateSyrup');

let vanillaLatte = Object.assign([], caffeLatte);
vanillaLatte.push('vanillaSyrup');


// 테스트 코드
console.log(espresso);
console.log(americano);
console.log(caffeLatte);
console.log(caffeMocha);
console.log(vanillaLatte);

위 예제는 assign 메소드로 다른 변수에 배열에 복사하여 추가하는 예제이다.

위 예제를 사용한 까닭은 만약 x 변수의 배열을 y변수가 복사를 하게 되면 그 값을 복사해 오는 것이 아니라,

그 값을 가르키고 있는 주소값을 복사해온다 . 

 

c언어를 해보셨던 분이라면 포인터를 생각하면 편하다. 그래서 복사해온 y변수에 값을 추가하였지만 x에도 같은 값이 추가된다. 왜냐 !? 같은 주소를 가르키고 있기 때문에 !

 

그런것을 방지하기 위해 assign 을 사용하면 내가 원하는 변수에 값을 추가할 수 있다.

728x90