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'
複製代碼
相關文章
相關標籤/搜索