펭귄집

참조타입의 특성



자바스크립트에서는 기본타입인 숫자, 문자열, 불린값, null, undefined 5가지를 제외한 모든 값은 객체

배열이나 함수 또한 객체로 취급
-> 이러한 객체는 자바스크립트에서 참조타입이라고 부른다. 
=> 이것은 객체의 모든 연산이 실제 값이 아닌 참조값으로 처리되기 때문


//1번

var objA = {

val : 40;

};


//2번

var objB = objA;


console.log(objA.val);  //(출력값) 40

console.log(objB.val);  //(출력값) 40


//3번

objB.val = 50;

console.log(objA.val);  //(출력값) 50

console.log(objB.val);  //(출력값) 50



1번

objA 객체를 리터럴 방식으로 생성

여기서 objA변수는 객체 자체를 저장하고 있는 것이 아니라 새성된 객체를 가리키는 참조값을 저장


2번

변수 objB에 objA값을 할당.

objA는 1번에서 생성된 객체를 가리키는 참조값을 가지고 있으므로 변수objB에도 이같은 객체의 참조값이 저장

-> 즉, 아래 그림같이 objA와 objB 변수가 동일한 객체를 가리키는 참조값을 가지게 되는 것

=> 따라서 a.val과 b.val값이 40


objA ->

val : 40

objB ->


3번

변수 objB가 가리키는 객체의 val값을 40에서 50으로 갱신

이때 변수 objA도 변수 objB와 동일한 객체를 참조하고 있으므로 a.val값이 50으로 변경




<참고문헌 : 인사이드자바스크립트>


'전공서적 > 인사이드자바스크립트' 카테고리의 다른 글

null 과 undefined  (0) 2017.08.30
문자열  (0) 2017.08.30
for in 문과 객체 프로퍼티 출력  (0) 2017.08.10
Javascript 문자열  (0) 2017.08.06
Javascript 기본타입  (0) 2017.08.06