래퍼 객체(Wrapper Object)

EenSung Kim·2021년 9월 29일
0

래퍼 객체란?

문자열, 숫자, 불리언 값은 원시값입니다. 원시 값은 객체와 구분되기 때문에 프로퍼티나 메서드를 가질 수 없겠죠. 하지만 자바스크립트를 배워가다 보면 문자열.length, 문자열.toUpperCase(), 숫자.toString() 과 같이 원시값이 프로퍼티나 메서드를 가진 것처럼 동작하는 경우를 보게 됩니다.

이것은 래퍼 객체가 있기 때문에 가능합니다. 래퍼 객체란 쉽게 말해 문자열, 숫자, 불리언 값에 대해 객체처럼 접근할 경우 생성되는 임시 객체를 의미합니다. (ES6 에서 도입된 심벌도 래퍼 객체를 갖는다고 합니다.) 이 때 이 임시 객체가 다양한 빌트인 프로토타입 메서드와 연결되기 때문에 객체처럼 사용이 가능한 것이죠.

이러한 래퍼 객체는 생성되고 난 후 처리가 종료되면 식별자가 다시 원시값을 갖도록 되돌려주기 때문에, 래퍼 객체에 임의로 프로퍼티를 추가한다해도 가비지 컬렉션의 대상이 됩니다. 따라서 객체를 사용하는 것과 모든 면에서 똑같은 방식으로 접근할 수 없다는 점을 이해할 필요가 있습니다.


outro

모던 자바스크립트 Deep Dive 16 장의 내용부터 상당 부분을 빠르게 훑고 넘어가는 중입니다. 지금 당장 이해하기 어려운 내용이라고 판단했기 때문인데요. 개인적으로는 프로그래밍 공부에 있어서 당장 몰라도 되는 내용들에 시간을 많이 쏟는 것이 효율적이지 않다고 생각합니다. 이 지점이야말로 부트캠프 과정을 통해서 얻은 노하우가 아닌가 싶습니다.

profile
iOS 개발자로 전직하기 위해 공부 중입니다.

0개의 댓글