1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      JavaScript對(duì)象使用方法-創(chuàng)新互聯(lián)

      JavaScript對(duì)象可以做什么?一般大家對(duì)JavaScript對(duì)象的了解可能停留在概念的層面上,而對(duì)于JavaScript對(duì)象使用方法了解相對(duì)較少。今天就跟大家聊聊JavaScript對(duì)象使用方法。

      創(chuàng)新互聯(lián)公司憑借專業(yè)的設(shè)計(jì)團(tuán)隊(duì)扎實(shí)的技術(shù)支持、優(yōu)質(zhì)高效的服務(wù)意識(shí)和豐厚的資源優(yōu)勢(shì),提供專業(yè)的網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站優(yōu)化、軟件開(kāi)發(fā)、網(wǎng)站改版等服務(wù),在成都十載的網(wǎng)站建設(shè)設(shè)計(jì)經(jīng)驗(yàn),為成都超過(guò)千家中小型企業(yè)策劃設(shè)計(jì)了網(wǎng)站。

      除了普通的對(duì)象屬性賦值和遍歷之外,我們還可以使用 JavaScript 對(duì)象執(zhí)行許多其他操作。在本文中,我們將了解如何使用它們,包括訪問(wèn)內(nèi)部屬性、操作屬性描述符和繼承只讀屬性。

      1. 訪問(wèn)內(nèi)部屬性

      JavaScript 對(duì)象無(wú)法以常規(guī)方式訪問(wèn)的內(nèi)部屬性。內(nèi)部屬性名由雙方括號(hào)[[]]包圍,在創(chuàng)建對(duì)象時(shí)可用。

      內(nèi)部屬性不能動(dòng)態(tài)地添加到現(xiàn)有對(duì)象。

      內(nèi)部屬性可以在某些內(nèi)置 JavaScript 對(duì)象中使用,它們存儲(chǔ)ECMAScript規(guī)范指定的內(nèi)部狀態(tài)。

      有兩種內(nèi)部屬性,一種操作對(duì)象的方法,另一種是存儲(chǔ)數(shù)據(jù)的方法。例如:

      • [[Prototype]] — 對(duì)象的原型,可以為null或?qū)ο?/p>

      • [[Extensible]] — 表示是否允許在對(duì)象中動(dòng)態(tài)添加新的屬性

      • [[PrivateFieldValues]] — 用于管理私有類字段

      2. 屬性描述符對(duì)象


      數(shù)據(jù)屬性包含了一個(gè)數(shù)據(jù)值的位置,在這個(gè)位置可以讀取和寫(xiě)入值。也就是說(shuō),數(shù)據(jù)屬性可以通過(guò) 對(duì)象.屬性 訪問(wèn),就是我么平常接觸的用戶賦什么值,它們就返回什么,不會(huì)做額外的事情。

      數(shù)據(jù)屬性有4個(gè)描述其行為的特性(為了表示內(nèi)部值,把屬性放在兩對(duì)方括號(hào)中),稱為描述符對(duì)象。

      value 描述符是屬性的數(shù)據(jù)值,例如,我們有以下對(duì)象 :

      let foo = {
        a: 1}

      那么,a 的value屬性描述符為1。

      writable是指該屬性的值是否可以更改。 默認(rèn)值為true,表示屬性是可寫(xiě)的。 但是,我們可以通過(guò)多種方式將其設(shè)置為不可寫(xiě)。

      configurable 的意思是可以刪除對(duì)象的屬性還是可以更改其屬性描述符。 默認(rèn)值為true,這意味著它是可配置的。

      enumerable 意味著它可以被for ... in循環(huán)遍歷。 默認(rèn)值為true,說(shuō)明能通過(guò)for-in循環(huán)返回屬性

      將屬性鍵添加到返回的數(shù)組之前,Object.keys方法還檢查enumerable 描述符。 但是,Reflect.ownKeys方法不會(huì)檢查此屬性描述符,而是返回所有自己的屬性鍵。

      Prototype描述符有其他方法,get和set分別用于獲取和設(shè)置值。

      在創(chuàng)建新對(duì)象, 我們可以使用Object.defineProperty方法設(shè)置的描述符,如下所示:

      let foo = {
        a: 1}Object.defineProperty(foo, 'b', {
        value: 2,
        writable: true,
        enumerable: true,
        configurable: true,});

      這樣得到foo的新值是{a: 1, b: 2}。
      我們還可以使用defineProperty更改現(xiàn)有屬性的描述符。 例如:

      let foo = {
        a: 1}Object.defineProperty(foo, 'a', {
        value: 2,
        writable: false,
        enumerable: true,
        configurable: true,});

      這樣當(dāng)我們嘗試給 foo.a 賦值時(shí),如:

      foo.a = 2;

      如果關(guān)閉了嚴(yán)格模式,瀏覽器將忽略,否則將拋出一個(gè)錯(cuò)誤,因?yàn)槲覀儗?writable 設(shè)置為 false, 表示該屬性不可寫(xiě)。
      我們還可以使用defineProperty將屬性轉(zhuǎn)換為getter,如下所示:

      'use strict'let foo = {  a: 1}Object.defineProperty(foo, 'b', {  get() {    return 1;
        }
      })

      當(dāng)我們這樣寫(xiě)的時(shí)候:

      foo.b = 2;

      因?yàn)閎屬性是getter屬性,所以當(dāng)使用嚴(yán)格模式時(shí),我們會(huì)得到一個(gè)錯(cuò)誤:Getter 屬性不能重新賦值。

      3.無(wú)法分配繼承的只讀屬性


      繼承的只讀屬性不能再賦值。這是有道理的,因?yàn)槲覀冞@樣設(shè)置它,它是繼承的,所以它應(yīng)該傳播到繼承屬性的對(duì)象。

      我們可以使用Object.create創(chuàng)建一個(gè)從原型對(duì)象繼承屬性的對(duì)象,如下所示:

      const proto = Object.defineProperties({}, {
        a: {
          value: 1,
          writable: false
        }})const foo = Object.create(proto)

      在上面的代碼中,我們將proto.a的 writable 描述符設(shè)置為false,因此我們無(wú)法為其分配其他值。

      如果我們這樣寫(xiě):

      foo.a = 2;

      在嚴(yán)格模式下,我們會(huì)收到錯(cuò)誤消息。

      總結(jié)


      我們可以用 JavaScript 對(duì)象做很多我們可能不知道的事情。

      首先,某些 JavaScript 對(duì)象(例如內(nèi)置瀏覽器對(duì)象)具有內(nèi)部屬性,這些屬性由雙方括號(hào)包圍,它們具有內(nèi)部狀態(tài),對(duì)象創(chuàng)建無(wú)法動(dòng)態(tài)添加。

      JavaScript對(duì)象屬性還具有屬性描述符,該屬性描述符使我們可以控制其值以及可以設(shè)置它們的值,還是可以更改其屬性描述符等。

      我們可以使用defineProperty更改屬性的屬性描述符,它還用于添加新屬性及其屬性描述符。

      最后,繼承的只讀屬性保持只讀狀態(tài),這是有道理的,因?yàn)樗菑母冈蛯?duì)象繼承而來(lái)的。

      看完上述內(nèi)容,你們對(duì)JavaScript對(duì)象的應(yīng)用有進(jìn)一步的了解嗎?如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀!

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


      分享名稱:JavaScript對(duì)象使用方法-創(chuàng)新互聯(lián)
      轉(zhuǎn)載注明:http://www.ef60e0e.cn/article/gcjco.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        乳山市| 江永县| 夹江县| 广东省| 新宁县| 密山市| 手游| 长岛县| 平泉县| 苍溪县| 徐州市| 宕昌县| 青田县| 望谟县| 肃北| 威海市| 荆州市| 兴安县| 沈阳市| 乳源| 三河市| 买车| 苗栗县| 太保市| 武汉市| 佳木斯市| 新绛县| 凉山| 虞城县| 五峰| 清涧县| 建始县| 德江县| 涪陵区| 乃东县| 衡水市| 商都县| 通海县| 五台县| 鲁山县| 涞水县|