
자바스크립트는 원시 값(Primitive Value)을 객체처럼 다룰 수 있도록 래퍼 객체를 자동으로 생성함. 이를 통해 기본 타입의 값(예: 숫자, 문자열, 불리언 등)에 대해 메서드나 프로퍼티를 호출 가능
래퍼 객체란? 자바스크립트가 기본 타입 값에 대해 메서드나 프로퍼티 호출 시 일시적으로 생성하는 객체로 사용 후 즉시 폐기되며, 개발자가 원시 값을 객체처럼 다룰 수 있게 함
const pI = 3.141592;
console.log(pI.toFixed(2)); // 출력: "3.14"
위 코드에서 pI는 Number 타입의 원시 값이지만, toFixed() 메서드를 호출 가능. 내부적으로 다음과 같은 방식으로 동작:
// 실제로는 이런 식으로 처리됨 (가상의 코드)
const pI = 3.141592;
const temp = new Number(pI); // 래퍼 객체가 임시로 생성
console.log(temp.toFixed(2)); // 래퍼 객체의 메서드를 호출
// 메서드 호출 후 래퍼 객체는 즉시 폐기
이러한 메커니즘 덕분에 원시 값에 대해서도 마치 객체처럼 메서드를 호출 가능. 이는 자바스크립트의 유연성을 보여주는 좋은 예시임
자바스크립트에는 Number, String, Boolean 등 기본 타입의 원시 값을 객체로 변환하는 래퍼 객체가 존재함. 예를 들어, 숫자는 Number, 문자열은 String, 불리언 값은 Boolean 객체로 임시 변환됨
const num = 10;
console.log(num.toString()); // "10" (숫자지만 객체처럼 사용 가능)
위 코드에서 num은 원시 값이지만, toString() 메서드를 호출하면 일시적으로 Number 객체로 변환됨
래퍼 객체는 일시적인 임시 객체로, 프로퍼티나 메서드를 호출할 때만 생성되고, 호출이 완료되면 즉시 삭제됨.
이러한 특성 덕분에 자바스크립트는 객체처럼 원시 값을 다룰 수 있는 유연성을 가지며, 별도의 래퍼 객체 생성 없이 기본 값에 대해 편리하게 메서드를 사용할 수 있음.
래퍼 객체는 자바스크립트의 프로토타입 기반 객체지향 특성을 보여줌. 모든 데이터를 객체처럼 다루고, 필요시 임시 객체를 생성해 유연성을 제공함