欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中的Primitive對象封裝介紹

 更新時間:2014年12月31日 09:55:19   投稿:junjie  
這篇文章主要介紹了JavaScript中的Primitive對象封裝介紹,本文著重講解封裝過程,然后給出示例代碼,需要的朋友可以參考下

JavaScript中,string、number、boolean均為primitive基本類型,也即字符串、數(shù)值、布爾值并不是以對象的形式而存在的。不過,由于需要對這三種primitive類型值進(jìn)行操作,因此JavaScript會自動封裝這三種類型的值,使其作為對象而擁有屬性與方法。以string為例,這種封裝過程如下:

1.當(dāng)JavaScript遇到對string值進(jìn)行屬性訪問或者方法調(diào)用時,會調(diào)用new String(字符串值)自動將該string封裝成一個String對象。
2.JavaScript會訪問這個新創(chuàng)建的對象的屬性或者方法,并返回相應(yīng)的結(jié)果。
3.屬性訪問或者方法調(diào)用結(jié)束后,JavaScript將立即銷毀這個新創(chuàng)建的對象。

以下面的代碼為例,對JavaScript自動創(chuàng)建的String對象進(jìn)行屬性寫入操作沒有任何意義,因為這個創(chuàng)建出來的對象在寫入語句結(jié)束后就不復(fù)存在了:


復(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所自動創(chuàng)建的字符串對象存在于執(zhí)行s.length或者s.newVariable操作的過程中。這可以從以上實驗的最后一行代碼中得到驗證。

除了對Primitive值進(jìn)行自動封裝,開發(fā)人員也可以選擇手動進(jìn)行相應(yīng)的過程。與自動封裝不同的是,手動封裝所得到的對象并不會被立即銷毀,因此針對手動封裝的對象所采取的屬性寫入操作是有意義的:


復(fù)制代碼 代碼如下:

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

相關(guān)文章

  • javascript當(dāng)中的代碼嗅探擴(kuò)展原生對象和原型(prototype)

    javascript當(dāng)中的代碼嗅探擴(kuò)展原生對象和原型(prototype)

    如果不是有特殊需要而去擴(kuò)展原生對象和原型(prototype)的做法是不好的,除非這樣做是值得的,例如,向一些舊的瀏覽器中添加一些ECMAScript5中的方法
    2013-01-01
  • javascript實現(xiàn)網(wǎng)頁端解壓并查看zip文件

    javascript實現(xiàn)網(wǎng)頁端解壓并查看zip文件

    昨天給大家分享了在網(wǎng)頁端使用zip.js插件實現(xiàn)在線壓縮文件的代碼,今天給大家分享一下javascript實現(xiàn)網(wǎng)頁端解壓并查看zip文件的方法,非常的實用,有需要的小伙伴可以參考下
    2015-12-12
  • setTimeout時間設(shè)置為0詳細(xì)解析

    setTimeout時間設(shè)置為0詳細(xì)解析

    setTimeout( ) 是屬于 window 的 method, 但我們都是略去 window 這頂層容器名稱, 這是用來設(shè)定一個時間, 時間到了, 就會執(zhí)行一個指定的 method,下面這篇文章主要給大家介紹了關(guān)于setTimeout時間設(shè)置為0的相關(guān)資料,需要的朋友可以參考下。
    2018-03-03
  • 微信小程序全局?jǐn)?shù)據(jù)共享和分包圖文詳解

    微信小程序全局?jǐn)?shù)據(jù)共享和分包圖文詳解

    全局?jǐn)?shù)據(jù)共享是為了解決組件之間數(shù)據(jù)共享的問題,下面這篇文章主要給大家介紹了關(guān)于微信小程序全局?jǐn)?shù)據(jù)共享和分包的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 一文帶你快速學(xué)會JavaScript條件判斷及高級用法

    一文帶你快速學(xué)會JavaScript條件判斷及高級用法

    JavaScript支持其用于執(zhí)行根據(jù)不同的條件不同的操作條件語句,下面這篇文章主要給大家介紹了關(guān)于如何在JavaScript中更好的使用條件判斷的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • form表單轉(zhuǎn)Json提交的方法(推薦)

    form表單轉(zhuǎn)Json提交的方法(推薦)

    下面小編就為大家?guī)硪黄猣orm表單轉(zhuǎn)Json提交的方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • TypeScript中type和interface的區(qū)別及注意事項

    TypeScript中type和interface的區(qū)別及注意事項

    type的類型別用可以用戶其他的類型,比如聯(lián)合類型、元祖類型、基本類型,interface不行,下面這篇文章主要給大家介紹了關(guān)于TypeScript中type和interface的區(qū)別及注意事項的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • php析構(gòu)函數(shù)的具體用法小結(jié)

    php析構(gòu)函數(shù)的具體用法小結(jié)

    本篇文章主要是對php析構(gòu)函數(shù)的具體用法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-03-03
  • JS奇技之利用scroll來監(jiān)聽resize詳解

    JS奇技之利用scroll來監(jiān)聽resize詳解

    這篇文章主要給大家介紹了JS奇技之利用scroll來監(jiān)聽resize的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • JS XMLHttpRequest原理與使用方法深入詳解

    JS XMLHttpRequest原理與使用方法深入詳解

    這篇文章主要介紹了JS XMLHttpRequest原理與使用方法,結(jié)合實例形式深入分析了JS XMLHttpRequest相關(guān)原理、使用方法及操作注意事項,需要的朋友可以參考下
    2020-04-04

最新評論