var s1 = 'some text'
var s2 = s1.substring(2)
复制代码
基本类型值 s1 不是对象,从逻辑上讲它们不该该有方法?(但它们确实有方法,why?) 其实在第二行代码访问s1时,后台自动完成了如下处理:bash
// 模拟后台处理
var o = new String('some text')
var s2 = o.substring(2)
o = null
复制代码
自动建立的包装类型只存在于一行代码执行瞬间,而后当即销毁。spa
以上三个步骤也适用于Number、Booleancode
var n = 9
n.toFixed(2) // '9.00'
var f = false
f.toString() // 'false'
复制代码