천천히 알아보는 코딩공부

javascript 참조 타입의 특성, 프로토타입 본문

JavaScript/기초

javascript 참조 타입의 특성, 프로토타입

고기고기물고기 2022. 4. 19. 03:32

참조 타입의 특성

    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

 

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

 

 

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

※ 동등연산자(==) 을 사용하여 두 객채를 비교할 때는 객체의 프로퍼티값이 아닌 참조값을 비교한다는 것에 주의해야한다.

 

1. 기본 타입은 값에 의한 호출(Call by Value)방식으로 동작함.
> 함수를 호출할 때 인자로 기본 타입의 값을 넘길 경우, 
호출된 함수의 매개변수로 복사된 값이 전달되기 때문에
함수 내부에서 매개변수를 이용해 값을 변경해도 실제 호출된 변수의 값이 변경되지 않음.


2. 객체와같은 참조 타입은 함수를 호출할 때 참조에 의한 호출(Call by Reference)방식으로 동작함.
> 함수를 호출할 때 인자로 참조 타입인 객체를 전달할 경우,
객체의 프로퍼티값이 함수의 매개변수로 복사되지 않고, 
인자로 넘긴 객체의 참조값이 그대로 함수 내부로 전달되기 때문에
함수 내부에서 참조값을 이용해 인자로 넘긴 실제 객체의 값을 변경할 수 있다.

 

프로토타입

  • 자바스크립트의 모든 객체는 자신의 부모 역할을 하는 객체와 연결되어있다. 이 부모 객체를 프로토타입 객체 또는 프로토타입이라 한다.
var foo = {
	name : 'foo',
    age : 30
};

console.log(foo.toString());
console.dir(foo);

object 프로토 타입

'JavaScript > 기초' 카테고리의 다른 글

javascript 연산자  (0) 2022.04.21
javascript 배열  (0) 2022.04.19
javascript 기본 타입, 참조 타입(객체 타입)  (0) 2022.04.19
javascript 태그 추가  (0) 2022.03.31
JavaScript 기초 정리 2  (0) 2022.03.29
Comments