JavaScript 包裝物件
無論生活中還是工作中,都有很多習以為常的現象或者認為理所應當的事情。
但是如果真的去探究其中的來龍去脈或者原理,可能未必能那麼清晰,甚至讓人感覺匪夷所思。
比如蘋果落地現象,普通人肯定感覺這是理所當然的事情,如果不是牛頓多思,豈能發現萬有引力。
也由此可見,在學習中要重視每一個細節,因為裡面可能隱藏著自己尚未掌握的知識。
JavaScript中也有類似的現象,首先看一段簡單程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var str = "antzone"; console.log(str.length);
程式碼執行效果截圖如下:
上面程式碼非常簡單,通過length屬性列印出字串包含的字元的個數。
筆者當年初學的時候同樣感覺上述程式碼是如此簡單,根本無需做任何說明。
但是如果深究下去可能會產生一些疑問,分步闡述如下:
(1).JavaScript資料分為值型別與引用型別,引用型別也就是通常所說的物件。
(2).只有物件才有可能擁有方法或者屬性,然後通過點(.)或者其他方式使用這些屬性或者方法。
(3).但上面的str很明是一個值型別資料,為什麼也能夠使用length屬性呢。
關於資料型別相關知識可以參閱如下兩篇文章:
(1).JavaScript 值型別和引用型別一章節。
(2).JavaScript 資料型別一章節。
上述現象分析如下:
(1)."antzone"確實是值型別資料,但是當通過點(.)使用length屬性的時候。
(2).內部會自動將值型別資料臨時轉換為對應的字串物件,於是就可以使用此屬性了。
(3).這個臨時生成的物件就是本文所要介紹的包裝物件。
(4).此包裝物件會在呼叫完屬性後立即銷燬。
再來看一段程式碼簡單的程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var str = "antzone"; str.len = 5; console.log(str.len)
程式碼執行效果截圖如下:
上述程式碼列印結果為undefined,程式碼分析如下:
(1).當為自定義屬性len賦值的時候,會生成一個包裝物件。
(2).這個包裝物件會在賦值結束後立馬被銷燬,自然len屬性值也被一併銷燬了。
(3).當去列印str.len值的時候,又會臨時生成一個包裝物件,但此時len的值是undefined。
上面對包裝物件進行了簡單的分析,如果文章有任何問題或者對文章有任何的建議可以在底部留言。
相關文章
- JavaScript 複習之包裝物件,Boolean物件,Number物件JavaScript物件Boolean
- 物件,包裝類物件
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- JavaScript學習筆記023-物件方法0包裝物件0靜態屬性JavaScript筆記物件
- JavaScript物件導向~ 作用域和閉包JavaScript物件
- JavaScript物件導向之一(封裝)JavaScript物件封裝
- JavaScript碎片———函式閉包(模擬物件導向)JavaScript函式物件
- Javascript 物件 – 字串物件JavaScript物件字串
- JavaScript中的包裝型別詳解JavaScript型別
- 函式物件、裝飾器、閉包函式函式物件
- JavaScript 物件JavaScript物件
- JavaScript物件JavaScript物件
- [JAVA] Java物件導向之包裝類,拆箱、裝箱Java物件
- Javascript 物件 – 陣列物件JavaScript物件陣列
- Javascript 物件 – 數學物件JavaScript物件
- 裝飾者模式-動態的包裝原有物件的行為模式物件
- Vue原始碼學習二 ———— Vue原型物件包裝Vue原始碼原型物件
- 【20190220】JavaScript-知識點整理:物件建立方式、原型、閉包JavaScript物件原型
- JavaScript Array 物件JavaScript物件
- JavaScript物件概述JavaScript物件
- JavaScript Boolean 物件JavaScriptBoolean物件
- JavaScript Object 物件JavaScriptObject物件
- JavaScript arguments 物件JavaScript物件
- JavaScript Global 物件JavaScript物件
- JavaScript document物件JavaScript物件
- JavaScript navigator 物件JavaScript物件
- JavaScript history 物件JavaScript物件
- JavaScript location 物件JavaScript物件
- JavaScript Date 物件JavaScript物件
- JavaScript 物件 & 原型JavaScript物件原型
- JavaScript URL 物件JavaScript物件
- JavaScript RegExp物件JavaScript物件
- JavaScript Function物件JavaScriptFunction物件
- JavaScript Symbol物件JavaScriptSymbol物件
- JavaScript Set物件JavaScript物件
- JavaScript window物件JavaScript物件
- JavaScript Promise物件JavaScriptPromise物件
- JavaScript Array物件JavaScript物件