jineecode
type에 따른 할당 본문
Primitive data type
문자, 숫자 자료형
let name1 = '김';
let name2 = name1;
name1 = '박';
console.log(name1);
박
console.log(name2);
김
Reference data type
Array, Object 자료형
이 타입은 자료를 변수에 직접 저장하지 않고, Reference를 변수에 저장함
let name3 = { name : '김' };
let name4 = name3;
name3.name = '박';
console.log(name3);
// {name: '박'}
console.log(name4);
// {name: '박'}
객체를 복사한 게 아닌, 객체를 가리키는 화살표를 복사한 것!
Q. Reference??
A. 컴퓨터 메모리 상의 어떤 곳.
C언어의 포인터 같은 개념이지만 C언어처럼 포인터 주소같은 개념은 다루지 못함
let name5 = { name : '김' };
function changeName(obj){
obj = { name : 'park' };
}
changeName(name5);
console.log(name5);
//{name: '김'}
obj 에 새롭게 object를 할당하면, 새로운 Reference(화살표)가 생겨 가리키는 것이기 때문에 원래의 name5에는 변화가 없다.
(name5라는 변수는 전혀 건드리지 않는 것임.)
var name5 = { name : '김' };
function 변경(obj){
obj.name = 'park';
}
변경(name5);
console.log(name5);
'JS' 카테고리의 다른 글
Object.keys() (0) | 2021.11.29 |
---|---|
constructor / prototype / Object.create() / class (0) | 2021.10.28 |
Chart.js (2) (2) | 2021.10.28 |
default parameter / arguments / rest parameter (0) | 2021.10.25 |
Spread Operator 활용법 (0) | 2021.10.25 |
Comments