JS裏的鎧甲合體!!!

本標題黨又回來了,最近在專心研究一些JS基礎性的書籍,以期把原理都瞭解透徹,因此寫文章的頻率就降了下來。可是今天我必需要來寫一會兒,爲何呢,別問我爲何,廠長是我表哥!先說明一下JS裏面的拆箱與裝箱指的是JS封箱和拆箱,已經玩的很六的大佬就不要浪費時間啦,抓緊研究更深的!函數

引子:cdn

咱們來看一下這段簡單的代碼,可能有的人會問這有啥,不就是新建一個字符串而後調用字符串上的方法嘛,其實這裏面仍是有點餡的,下面讓咱們來嘗一嚐到底是什麼餡料對象

首先在JS裏面字符串是屬於基本數據類型的,那爲什麼基本數據類型上會有方法呢,我套你個猴子的,有方法那不是成對象了。blog

要解釋這個問題咱們就不得不提JS裏面的一種機制,封裝對象的包裝與拆裝,即裝箱與拆箱。字符串

裝箱:it

當咱們在基本數據類型上調用方法的時候,JS會默認進行裝箱操做。啥叫裝箱呢,下面讓我來操做一波好吧。io

相信在座的各位或多或少都看過鎧甲勇士吧,鎧甲勇士通常的橋段就是ERP研究室基地發現有小怪獸出現了,會通知鎧甲勇士,此時此刻他們大喊一聲鎧甲合體!就由一個普通人變爲了鎧甲勇士,什麼火焰拳之類的在普通人狀態沒有的技能通通都來了!class

這就跟裝箱操做同樣同樣的嗷,JS引擎就是ERP基地,而基本數據類型的變量就至關於普通人,方法則至關於技能。做爲普通人是沒有火焰拳技能的,可是穿上鎧甲以後不止能調用函數,打十個都行,來評論區上來幾個我給大家示範一會兒。這個還要注意一下不是啥技能都能放的,只能放對應鎧甲的技能,好比你穿個炎龍鎧甲放出個風鷹腿來,你覺得你誰,導演嗎?這和JS原理是同樣的,雖然說JS會進行裝箱操做,但也不會亂裝,字符串裝成字String對象,數字裝成Number對象...基礎

拆箱:變量

當技能被放了,小怪獸被消滅了完了怎麼辦呢,固然是取消鎧甲合體變回一個普通人咯。JS也這樣的,函數也調用完了是吧,調完了就給拆開,把變量從新變回一個基本數據類型的變量。

還有一點須要注意一下,裝箱完了使用後會進行拆箱,就跟穿鎧甲打完小怪獸裝完***後總得解除合體吧,若是一直穿着可就顯得有點呆滯了啊!

結語:

好了,今天就先到這裏了,上午看到有人說技術文章不該該扯不少廢話,我的認爲分狀況吧,若是多扯幾句能記憶更深入,理解的更透徹,那何樂而不爲呢,你們怎麼看呢

相關文章
相關標籤/搜索