问题
为什么string这种基础数据类型可以调用方法,例如‘a’.indexOf('a')
,方法调用不是对象才有的能力吗 ?
解答
- JS中为了便于基本数据类型操作,提供了3个特殊的引用类型:Boolean、Number、String,它们具有基本类型的特殊行为
- 实际上,每当读取一个基本类型的时候,JS内部会自动创建一个基本包装类型对象,可以让我们调用一些方法
'a'.indexOf('a')
在调用过程中会先let str = new String('a')
,然后调用indexOf,调用完毕使str = null
,销毁该对象。