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
반응형
'JavaScript > 기본 내장 객체' 카테고리의 다른 글
배열과 Array객체 2 : ECMAScript Array [ forEach( ), map(), filter(), every(), some(), reduce(), reduceRight() ] (0) | 2022.01.19 |
---|---|
배열과 Array객체 1 (0) | 2022.01.19 |
문자열과 String객체 (메서드체이닝기법) , ECMAScript5 - trim( ) 메서드 (0) | 2022.01.19 |
숫자와 Number 객체 (0) | 2022.01.19 |
Object 객체 (0) | 2022.01.19 |