Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- nextjs
- MongoDB
- nest
- 객체
- 참조에 의한 객체 복사
- 로그스태시
- JSON.stringify
- 캐러셀
- 자바스크립트
- 중첩 구조 분해
- 위크셋
- AGGREGATE
- 카카오로그인
- JavaScript
- 이메일 전송
- javacript
- react-slick
- nodemailer
- DB
- context switch
- 화살표 함수
- JSON.parse
- TypeScript
- Map
- 카카오 소셜로그인
- Mongoose
- logstash
- 위크맵
- 구조 분해 할당
- nestjs
Archives
- Today
- Total
뚜sh뚜sh
[모던 JavaScript] 4.2 참조에 의한 객체 복사 본문
참조에 의한 객체 복사
- 객체와 원시 타입의 근본적인 차이 중 하나는 객체는 '참조에 의해' 저장되고 복사된다는 것이고 원시값(문자열, 숫자, 불린 값)은 '값 그대로' 저장,할당되고 복사됨
객체의 동작 방식
let user = {
name: "John"
};
- 변수엔 객체가 그대로 저장되는 것이 아니라, 객체가 저장되어 있는 '메모리 주소'인 객체에 대한 '참조 값'이 저장됨
- 객체는 메모리 내 어딘가에 저장되고, 변수 user엔 객체를 '참조'할 수 있는 값이 저장됨
- 따라서 객체가 할당된 변수를 복사할 땐 객체의 참조 값이 복사되고 객체는 복사되지 않음
객체 복사, 병합과 Object.assign
Object.assign(dest, [src1, src2, src3...])
- 첫 번째 인수 dest는 목표로 하는 객체
- 이어지는 인수 src1, ..., srcN은 복사하고자 하는 객체임
- 객체 src1, ..., srcN의 프로퍼티를 dest에 복사함
- dest를 제외한 인수(객체)의 프로퍼티 전부가 첫 번째 인수(객체)로 복사됨
- 마지막으로 dest를 반환함
let user = { name: "John" };
let permissions1 = { canView: true };
let permissions2 = { canEdit: true };
// permissions1과 permissions2의 프로퍼티를 user로 복사합니다.
Object.assign(user, permissions1, permissions2);
// now user = { name: "John", canView: true, canEdit: true }
'Language > JavaScript' 카테고리의 다른 글
[모던 JavaScript] 4.4 메서드와 this (0) | 2023.01.30 |
---|---|
[모던 JavaScript] 4.3 가비지 컬렉션 (0) | 2023.01.30 |
[모던 JavaScript] 4.1 객체 (0) | 2023.01.27 |
[모던 JavaScript] 3.1 Chrome으로 디버깅하기 (0) | 2023.01.27 |
[모던 JavaScript] 2.17 화살표 함수 기본 (0) | 2023.01.27 |
Comments