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 }