Hi

(javascript) 참조 타입의 특성 본문

WEB(웹)

(javascript) 참조 타입의 특성

SharingWorld 2018. 6. 20. 14:05

참조 타입의 특성

객체는 자바스크립트에서 참조타입

객체의 모든 연산이 실제 값이 아닌 참조값으로 처리.

var objA = {
	val : 40
};
var objB = objA;

console.log(objA.val); // 40
console.log(objB.val); // 40

objB.val = 50;
console.log(objA.val); // 50
console.log(objB.val); // 50

객체 비교

동등 연산자 (==)를 사용하여 두 객체를 비교할 때도 객체의 프로퍼티 값이 아닌 참조값을 비교한다.

var a = 100;
var b = 100;

var objA = { value: 100 };
var objB = { value: 100 };
var objC = objB;

console.log(a == b);	// true
console.log(objA == objB);	// false
console.log(objB == objC);	// true

참조에 의한 함수 호출 방식

기본 타입 : 값에 의한 호출 (Call By Value) 방식
객체과 같은 참조 타입 : 참조에 의한 호출(Call By Reference) 방식

var a = 100;
var objA = { value: 100 };

function changeArg(num, obj) {
	num = 200;
	obj.value = 200;
	
	console.log(num);
	console.log(obj);
}

changeArg(a, objA);

console.log(a);
console.log(objA);

출력결과

200
{ value: 200 }
100
{ value: 200 }