- String
- Number
- Boolean
- Symbol
原始类型并不是对象,作用是只提供单个值。
既然不是对象,那就不应该具有方法,所以str.toUpperCase()到底是什么意思?
很简单:
toUpperCase()是一个方法,既然被调用了,那就一定要找到是谁调用的我。
一般来说是对象在进行调用,好家伙,str又不是对象,那就不是str调用的我。
那就假设是一个无名者调用了我,可我最终是把str中字母全都变成大写了。所以我最终还是作用在str上。
所以存在一个东西,和方法相关,它是一个对象;
和str相关,一个对象如何和一个原始类型相关联?那必须是对象中包含str。
综上所述,有一个特殊对象,能让原始类型也使用方法,而使用这个特殊对象很简单,只要把原始类型当成是对象就行了,剩下的交给引擎。
这个对象就相当于包装器。