JavaScript/기본 내장 객체

기본 자료형과 객체의 차이

유혁스쿨 2022. 1. 19. 17:26
728x90
반응형

기본 자료형은 자바스크립트의 여섯가지 자료형 중 숫자, 문자열, 불 세가지 자료형을 의미한다.

기본 자료형과 객체의 특성이 다르므로 차이를 둔다.

var primitiveNumber = 273;
var objectNumber = new Number(273);

var output = '';
output += typeof primitiveNumber + ' : ' + primitiveNumber + '\n';
output += typeof objectNumber + ' : ' + objectNumber;

console.log(output);

자료형은 분명 다르지만 기본 자료형과 객체는 같은 속성과 메서드를 사용할 수 있다.

(숫자를 기준으로 숫자 기본자료형과 Number객체 자료형 / 문자열 자료형과 String객체도 포함된다.)

속성과 메서드는 객체가 가질 수 있는 것인데, 기본 자료형에도 속성과 메서드가 존재한다.

기본 자료형의 속성이나 메서드를 사용하면 기본 자료형이 자동으로 객체로 변환된다.

 

예를들어 기본 자료형 숫자의 속성이나 메서드를 사용할 때는 자동으로 Number 객체로 변환되므로 기본 자료형이 속성이나 메서드를 사용할 수 있게 되는것이다.(문자열과 String객체 포함)

 

굳이 차이점을 찾자면 기본 자료형은 객체가 아니므로 속성과 메서드를 추가 할 수는 없다.

var primitiveNumber = 273;

primitiveNumber.method = function() {
    return 'Method on Prototype';
}

var output = '';
output += typeof primitiveNumber.method() + '\n';

console.log(output);

기본 자료형 변수에 method( ) 메서드를 추가하고 실행하면 오류가 발생한다.

기본 자료형이므로 속성과 메서드를 추가해서 사용할 수 없다.

더보기
더보기
더보기

기본 자료형이 객체로 변환할 때 일회용 옷을 입는다는 개념으로 생각하면 쉽다.

기본 자료형의 메서드를 사용한다는 것은 기본 자료형에게 객체라는 일회용 옷을 입힌 다음 메서드를 사용하는 것이다.

한 번 사용하면 곧바로 일회용 옷을 버린다.

기본 자료형에 메서드를 추가 했지만, 이는 기본 자료형에게 직접 메서드를 추가한 것이 아니라 일회용 옷에 추가한 것이므로 추가하자마자 버려진다.

프로토타입을 사용하면 기본자료형에도 메서드를 추가할 수 있게 된다.

var primitiveNumber = 273;
var objectNumber = new Number(273);

Number.prototype.method = function() {
    return 'Method on Prototype';
}

var output = '';
output += typeof primitiveNumber.method() + '\n';
output += typeof objectNumber.method();

console.log(output);

해당 메서드는 Object타입의 Number객체에서도 사용이 가능해진다.

728x90
반응형