[Javascript]깊은복사 vs 얕은복사

박중연·2024년 3월 22일

얕은복사

  • 새로운 복합 객체를 만들고,(가능한 범위까지) 원본 객체를 가리키는 참조를 새로운 복합 객체에 삽입
  • 복사 후 같은 주소를 참조 (인스턴스 생성 x) '주소 값'을 복사한다는 의미
    		let num = 100;
    			let copyNum = num;
    			num = 200;
    			console.log(num);
    			console.log(copyNum);
    			console.log(num == copyNum);

깊은복사

  • 새로운 복합 객체를 만들고, 재귀적으로 원본 객체의 사본을 새로 만든 복합 객체에 삽입
  • 복사 후 다른 주소를 참조 (인스턴스 생성 o)'실제 값'을 새로운 메모리 공간에 복사하는 것을 의미
    		// 생성된 객체의 주소값이 변수에 할당
    		const exArr = [100,200]; // 참조데이터타입 : 객체
    		const copyArr = exArr; // 주소값을복사 : 얕은복사
    		copyArr[1] = 300;
    		console.log(exArr);
    		console.log(copyArr);
    		console.log(exArr == copyArr);
profile
개발자로 취업하기

0개의 댓글