js 基本包装类型

var s1 = 'some text'
var s2 = s1.substring(2)
复制代码

基本类型值 s1 不是对象,从逻辑上讲它们不该该有方法?(但它们确实有方法,why?) 其实在第二行代码访问s1时,后台自动完成了如下处理:bash

  1. 建立String实例。
  2. 在实例上调用指定方法。
  3. 销毁实例。
// 模拟后台处理
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'
复制代码
相关文章
相关标签/搜索