JavaScript中的Primitive對(duì)象封裝介紹
JavaScript中,string、number、boolean均為primitive基本類型,也即字符串、數(shù)值、布爾值并不是以對(duì)象的形式而存在的。不過(guò),由于需要對(duì)這三種primitive類型值進(jìn)行操作,因此JavaScript會(huì)自動(dòng)封裝這三種類型的值,使其作為對(duì)象而擁有屬性與方法。以string為例,這種封裝過(guò)程如下:
1.當(dāng)JavaScript遇到對(duì)string值進(jìn)行屬性訪問(wèn)或者方法調(diào)用時(shí),會(huì)調(diào)用new String(字符串值)自動(dòng)將該string封裝成一個(gè)String對(duì)象。
2.JavaScript會(huì)訪問(wèn)這個(gè)新創(chuàng)建的對(duì)象的屬性或者方法,并返回相應(yīng)的結(jié)果。
3.屬性訪問(wèn)或者方法調(diào)用結(jié)束后,JavaScript將立即銷毀這個(gè)新創(chuàng)建的對(duì)象。
以下面的代碼為例,對(duì)JavaScript自動(dòng)創(chuàng)建的String對(duì)象進(jìn)行屬性寫(xiě)入操作沒(méi)有任何意義,因?yàn)檫@個(gè)創(chuàng)建出來(lái)的對(duì)象在寫(xiě)入語(yǔ)句結(jié)束后就不復(fù)存在了:
var s = "test";
s.length = 9;
console.log(s.length);//still 4
s.newVariable = 9;
console.log(s.newVariable);//undefined
console.log(s === "test");//true
值得注意的是,上述代碼中的s變量所表示的永遠(yuǎn)是primitive的字符串,JavaScript所自動(dòng)創(chuàng)建的字符串對(duì)象存在于執(zhí)行s.length或者s.newVariable操作的過(guò)程中。這可以從以上實(shí)驗(yàn)的最后一行代碼中得到驗(yàn)證。
除了對(duì)Primitive值進(jìn)行自動(dòng)封裝,開(kāi)發(fā)人員也可以選擇手動(dòng)進(jìn)行相應(yīng)的過(guò)程。與自動(dòng)封裝不同的是,手動(dòng)封裝所得到的對(duì)象并不會(huì)被立即銷毀,因此針對(duì)手動(dòng)封裝的對(duì)象所采取的屬性寫(xiě)入操作是有意義的:
var t = new String("test");
t.length = 9;
console.log(t.length);//still 4, as length attribute is read only
t.newVariable = 9;
console.log(t.newVariable);//9
console.log(t == "test");//true
console.log(t === "test");//false
- javascript 面向?qū)ο笕吕砭氈當(dāng)?shù)據(jù)的封裝
- Javascript 面向?qū)ο螅ǘ┓庋b代碼
- Javascript 面向?qū)ο缶幊蹋ㄒ唬?封裝
- javascript對(duì)XMLHttpRequest異步請(qǐng)求的面向?qū)ο蠓庋b
- javascript面向?qū)ο蟀b類Class封裝類庫(kù)剖析
- javascript 面向?qū)ο缶幊袒A(chǔ):封裝
- JavaScript之信息的封裝 js對(duì)象入門
- js實(shí)現(xiàn)對(duì)ajax請(qǐng)求面向?qū)ο蟮姆庋b
- javascript 面向?qū)ο蠓庋b與繼承
- 學(xué)習(xí)Javascript面向?qū)ο缶幊讨庋b
- Javascript之面向?qū)ο?-封裝
- JavaScript對(duì)象封裝的簡(jiǎn)單實(shí)現(xiàn)方法(3種方法)
相關(guān)文章
javascript和jquery中cookie的設(shè)置方法
Cookie 是瀏覽器訪問(wèn)服務(wù)器后,服務(wù)器傳給瀏覽器的一段數(shù)據(jù)。瀏覽器需要保存這段數(shù)據(jù),不會(huì)輕易刪除(保存在計(jì)算機(jī)中)。此后每次瀏覽器訪問(wèn)該服務(wù)器,都必須帶上這段數(shù)據(jù)。這篇文章主要介紹了javascript和jquery中cookie的設(shè)置方法2023-07-07
在JavaScript中使用for循環(huán)的方法詳解
在本文中,我們將學(xué)習(xí) JavaScript 中提供,的 for 循環(huán),我們將了解如何在 JavaScript 中使用 for...in 循環(huán)語(yǔ)句、其語(yǔ)法、工作原理示例、何時(shí)使用或避免使用它以及我們可以使用哪些其他類型的循環(huán),需要的朋友可以參考下2023-07-07
layui點(diǎn)擊彈框頁(yè)面 表單請(qǐng)求的方法
今天小編就為大家分享一篇layui點(diǎn)擊彈框頁(yè)面 表單請(qǐng)求的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
一個(gè)關(guān)于JS操作符in問(wèn)題引發(fā)的探究
這篇文章主要給大家介紹了一個(gè)JS操作符in問(wèn)題引發(fā)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
js+html5實(shí)現(xiàn)canvas繪制圓形圖案的方法
這篇文章主要介紹了js+html5實(shí)現(xiàn)canvas繪制圓形圖案的方法,涉及html5圖形繪制的基礎(chǔ)技巧,需要的朋友可以參考下2015-06-06
原生js實(shí)現(xiàn)改變隨意改變div屬性style的名稱和值的結(jié)果
在本文將為大家介紹下如何用原生js和jQuery實(shí)現(xiàn)隨意改變div屬性,和重置,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-09-09
js 計(jì)算圖片內(nèi)點(diǎn)個(gè)數(shù)的示例代碼
這篇文章主要介紹了js 計(jì)算圖片內(nèi)點(diǎn)個(gè)數(shù)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
JavaScript 中的12種循環(huán)遍歷方法【總結(jié)】
本文給大家總結(jié)了12種JavaScript 中的1循環(huán)遍歷方法,每種方法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05

