래퍼 객체
래퍼 객체#
래퍼 객체(Primitive wrapper objects)를 이용해 원시값도 객체 안 프로퍼티를 사용할 수 있다.
원시 값에 메서드를 호출하려 하면 임시 객체가 만들어 지지만 JS 엔진의 훌륭한 내부 최적화로 매서드를 호출해도 많은 리소스를 쓰지 않음.
- instanceof 🔗
Primitive wrapper objects 의 종류#
- String : string primitive wrapper object.
- Number : number primitive wrapper object.
- Boolean : Boolean primitive wrapper object.
- Symbol : Symbol primitive wrapper object.
'valueOf()' 래퍼객체에서 감싼 원시값으로 접근하는 방법
by 준일님. 원시값을 객체 형태로 변환해 주는 것 같다.
원시 값과, 객체를 분리한 이유#
- 원시값은 가능한 빠르고 가벼워야함
- 원시값을 다루는 일은 메서드를 사용하면 수월하다.
String/Number/Boolean 을 생성자로 쓰지 말자.#
논리 평가 시 항상 참을 반환
String/Number/Boolean 생성자 없이 사용#
인수를 원하는 형의 원시값(문자열, 숫자, 불린 값)으로 변환
null / undefined 의 메서드는 없다.#
문자열에 프로퍼티 추가#
str 의 프로퍼티에 접근하려 하면 '래퍼 객체'가 만들어 진다.
엄격모드#
래퍼객체를 수정하려 할 때 에러 발생
비엄격모드#
래퍼 객체에 test 프로퍼티가 추가 되지만, 래퍼객체는 바로 삭제되기 때문에 마지막줄이 실행될 땐 test 를 찾을 수 없다.
심화 TODO#
JS의 내부 래퍼객체 동작원리.