JavaScript | TypeScript/Javascript 시작하기

[ Javascript ] 기본 내장 객체

shiro21 2022. 6. 15. 15:26
반응형

기본 내장 객체

 

기본 자료형과 객체의 차이점

기본 자료형은 자바스크립트의 여섯가지 자료형 중 숫자, 문자열, 불 세 가지 자료형을 의미합니다. 기본 자료형과 객체의 특성이 다르므로 차이를 둡니다.

 

기본 자료형과 객체 예

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

var output = '';
output += typeof (defaultNumber) + ' : ' + defaultNumber + '\n';
output += typeof (objectNumber) + ' : ' + objectNumber;

console.log(output);
/*
number : 273
object : 273
*/

위 코드에서 기본 자료형과 객체는 자료형이 분명히 다릅니다. 하지만 두 가지 모두 값을 출력합니다.

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


예를 들어 기본 자료형 숫자의 속성이나 메서드를 사용할 때는 자동으로 Number객체로 변환되므로, 기본 자료형이 속성이나 메서드를 사용할 수 있는 것입니다. 따라서 기본 자료형과 객체의 차이점을 찾기가 힘듭니다.

굳이 차이점을 본다면 기본 자료형은 객체가 아니기 때문에 속성과 메서드를 추가할 수 없습니다.

 

기본 자료형에서 메서드 추가 예

var defaultNumber = 273;

defaultNumber.method = function() {
    return 'Default Method';
};

var output = defaultNumber.method() + '\n';
console.log(output); // TypeError

위 코드를 실행하면 오류가 발생합니다. 기본 자료형이기 때문에 속성과 메서드를 추가해서 사용할 수 없습니다.

기본 자료형을 객체로 변환하는 것은 일회용 옷을 입는다는 개념으로 생각하면 쉽습니다. 기본 자료형의 메서드를 사용한다는 것은 기본 자료형에 객체라는 일회용 옷을 입힌 다음 메서드를 사요하는 것입니다. 한 번 사용하면 곧바로 일회용 옷을 버립니다. 기본 자료형에 메서드를 추가했지만 이는 기본 자료형에 직접 메서드를 추가한 것이 아니라 일회용 옷에 추가한 것이므로 추가하자마자 버령집니다.

 

생성자 함수에 메서드 추가 예

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

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

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

console.log(output);
/*
Method on Prototype
Method on Prototype
*/

프로토타입에 메서드를 추가하면 위 코드처럼 기본 자료형에도 새로운 메서드가 생성됩니다.

반응형