国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

JavaScript 對象可以做到的三件事

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

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

1. 訪問內部屬性

JavaScript 對象無法以常規方式訪問的「內部屬性」。「內部屬性」名由雙方括號[[]]包圍,在創建對象時可用。

  • 「內部屬性」不能動態地添加到現有對象。
  • 「內部屬性」可以在某些內置 JavaScript 對象中使用,它們存儲ECMAScript規范指定的內部狀態。

有兩種「內部屬性」,一種操作對象的方法,另一種是存儲數據的方法。例如:

  • [[Prototype]] — 對象的原型,可以為null或對象
  • [[Extensible]] — 表示是否允許在對象中動態添加新的屬性
  • [[PrivateFieldValues]] — 用于管理私有類字段

2. 屬性描述符對象

數據屬性包含了一個數據值的位置,在這個位置可以讀取和寫入值。也就是說,數據屬性可以通過 對象.屬性 訪問,就是我么平常接觸的用戶賦什么值,它們就返回什么,不會做額外的事情。

數據屬性有4個描述其行為的特性(為了表示內部值,把屬性放在兩對方括號中),稱為「描述符對象」。

value 描述符是屬性的數據值,例如,我們有以下對象 :

  1. let foo = { 
  2.   a: 1 

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

writable是指該屬性的值是否可以更改。默認值為true,表示屬性是可寫的。但是,我們可以通過多種方式將其設置為不可寫。

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

enumerable 意味著它可以被for ... in循環遍歷。默認值為true,說明能通過for-in循環返回屬性

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

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

在創建新對象, 我們可以使用Object.defineProperty方法設置的描述符,如下所示:

  1. let foo = { 
  2.   a: 1 
  3. Object.defineProperty(foo, 'b', { 
  4.   value: 2, 
  5.   writable: true, 
  6.   enumerable: true, 
  7.   configurable: true, 
  8. }); 

這樣得到foo的新值是{a: 1, b: 2}。

我們還可以使用defineProperty更改現有屬性的描述符。例如:

  1. let foo = { 
  2.   a: 1 
  3. Object.defineProperty(foo, 'a', { 
  4.   value: 2, 
  5.   writable: false, 
  6.   enumerable: true, 
  7.   configurable: true, 
  8. }); 

這樣當我們嘗試給 foo.a 賦值時,如:

  1. foo.a = 2

如果關閉了嚴格模式,瀏覽器將忽略,否則將拋出一個錯誤,因為我們將 writable 設置為 false, 表示該屬性不可寫。

我們還可以使用defineProperty將屬性轉換為getter,如下所示:

  1. 'use strict' 
  2. let foo = { 
  3.   a: 1 
  4.  
  5. Object.defineProperty(foo, 'b', { 
  6.   get() { 
  7.     return 1; 
  8.   } 
  9. }) 

當我們這樣寫的時候:

  1. foo.b = 2

因為b屬性是getter屬性,所以當使用嚴格模式時,我們會得到一個錯誤:Getter 屬性不能重新賦值。

3. 無法分配繼承的只讀屬性

繼承的只讀屬性不能再賦值。這是有道理的,因為我們這樣設置它,它是繼承的,所以它應該傳播到繼承屬性的對象。

我們可以使用Object.create創建一個從原型對象繼承屬性的對象,如下所示:

  1. const proto = Object.defineProperties({}, { 
  2.   a: { 
  3.     value: 1, 
  4.     writable: false 
  5.   } 
  6. }) 
  7.  
  8. const foo = Object.create(proto) 

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

如果我們這樣寫:

  1. foo.a = 2

在嚴格模式下,我們會收到錯誤消息。

總結

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

首先,某些 JavaScript 對象(例如內置瀏覽器對象)具有內部屬性,這些屬性由雙方括號包圍,它們具有內部狀態,對象創建無法動態添加。

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

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

最后,繼承的只讀屬性保持只讀狀態,這是有道理的,因為它是從父原型對象繼承而來的。

本文轉載自微信公眾號「大遷世界」,可以通過以下二維碼關注。轉載本文請聯系大遷世界公眾號。

 

責任編輯:趙寧寧 來源: 大遷世界
相關推薦

2010-08-30 09:21:20

2013-07-01 10:21:26

阿里大數據

2020-08-06 18:11:15

SaaS

2015-05-13 09:21:27

開源項目管理項目管理

2022-09-20 09:33:51

無線空中下載技術OTA

2020-03-05 17:50:00

智慧社區智能

2018-12-20 07:33:09

數據中心運維管理

2022-03-31 14:28:43

數據安全企業數據保護

2024-05-31 08:00:59

2019-05-14 13:52:26

云計算物聯網收集數據

2020-04-13 10:18:00

云計算安全IT

2017-05-11 14:16:58

虛擬化存儲解決方案

2019-12-12 15:40:08

物聯網數字健康自動化

2020-03-18 10:57:16

CIO 肺炎技術

2021-07-12 23:21:52

MyISAM引擎InnoDB

2015-06-23 13:22:17

桌面云深信服

2023-07-10 10:25:51

CIOCFO

2013-03-08 09:33:10

和信虛擬終端

2017-12-06 22:15:49

點贊
收藏

51CTO技術棧公眾號

成人福利网址| 国产香蕉久久精品综合网| 国产精品国产三级国产普通话蜜臀 | 一本大道综合伊人精品热热| 亚洲最大福利网站| 少妇精品放荡导航| 日本成人中文字幕| 少妇av一区二区三区| www.xxx亚洲| 成人av在线电影| 国产肥臀一区二区福利视频| 麻豆91在线观看| 一本到一区二区三区| 成视频在线观看免费观看| 久久久99久久| 激情婷婷综合网| 国产亚洲综合在线| 亚洲欧美在线精品| 亚洲精品中文在线观看| 337p日本| 午夜伦理一区二区| 毛片免费在线| 91精品国产一区二区三区香蕉| av播放在线| 精品国产污污免费网站入口 | 精品国产免费人成电影在线观看四季| 成年人在线观看视频| 欧美久久久久久久久久| 精品51国产黑色丝袜高跟鞋| 91精品国产乱| 丁香六月综合| 欧美贵妇videos办公室| 小嫩嫩12欧美| 成人av在线网址| 国产亚洲福利| 日产精品久久久久久久蜜臀| 狠狠综合久久av一区二区老牛| 好看的亚洲午夜视频在线| 欧美少妇一区| av中文字幕不卡| www.欧美黄色| 色综合久久天天| av综合网站| 国产精品一香蕉国产线看观看| 白嫩亚洲一区二区三区| 理论片在线不卡免费观看| 国产天堂亚洲国产碰碰| 最新97超碰在线| 久久这里有精品| 久久久久.com| 成熟丰满熟妇高潮xxxxx视频| 成人动漫中文字幕| 国产精品3区| 日韩中文字幕a| 视频在线一区二区| 亚洲日本成人| 秋霞国产精品| 色综合久久av| 精品久久在线播放| 国产大学生校花援交在线播放| 久久视频在线免费观看| 91综合在线| 99久久国产宗和精品1上映| 老鸭窝一区二区久久精品| 亚洲成人男人天堂| 麻豆传传媒久久久爱| 精品一区二区三区四区| 免费看男男www网站入口在线| 午夜久久久久久久久| 国产后进白嫩翘臀在线观看视频| 亚洲成人自拍视频| 欧美天天综合网| 粉嫩在线一区二区三区视频| 日韩黄色大片网站| 成人免费毛片嘿嘿连载视频…| 91精品国产综合久久久久久久久 | 中文在线观看免费| 韩国一区二区三区美女美女秀 | 奇米影视7777精品一区二区| 欧美视频在线播放一区| 56国语精品自产拍在线观看| 久久99国产精品尤物| 日韩高清二区| 国产精品无码专区在线观看| 久久高清免费观看| 免费在线视频欧美| 在线碰免费视频在线观看| 国产精品激情av电影在线观看| 欧美性20hd另类| 久久综合影视| 成人免费毛片播放| 国产精品成久久久久三级| 精品国产免费久久| 国产精品视频久久一区| 精品国产三级a∨在线| 亚洲成人精品影院| 日韩成人综合网| 日本免费高清一区| 亚洲成人av中文| 涩爱av色老久久精品偷偷鲁| 亚洲aⅴ天堂av在线电影软件| 亚洲国产精品一区二区久久| 欧美成人app| 一级日韩一区在线观看| 在线观看网站黄不卡| 免费精品国产| 99免费视频观看| 亚洲视频777| 青青青伊人色综合久久| 二区三区在线播放| 成人免费淫片aa视频免费| 亚洲欧洲av在线| 日韩有吗在线观看| 欧美久久久久久久久久久久久| 欧美精品v国产精品v日韩精品| 第四色成人网| 97秋霞电影网| 欧美激情免费看| 久久精品视频在线看| 日本h片久久| wwwjizzjizzcom| 亚洲免费视频一区二区| 精品一区二区三区免费播放| 久久电影网站| 日本成人性视频| 亚洲欧美激情精品一区二区| 蜜桃传媒麻豆第一区在线观看| a在线免费观看| 日本一区二区三不卡| 欧美一区二区日韩| 性娇小13――14欧美| 成人片在线看| 一区二区三区我不卡| 日韩av最新在线| 国产99久久久精品| 电影一区二区三区久久免费观看| 黄色一级在线视频| 久久乐国产精品| 亚洲图片欧美激情| 日韩电影免费网站| 懂色av中文在线| 日本一区网站| 亚洲欧美在线看| 久久影院午夜片一区| 福利片在线一区二区| 黄色网址入口| 4444kk亚洲人成电影在线| 欧美人牲a欧美精品| 久久黄色级2电影| 国产亚洲久久| 中文日本高清免费| 欧美日韩精品免费观看视一区二区 | 成人福利网址| 国产精品视频久久久| 在线免费亚洲电影| 奇米一区二区三区av| 国产精品久久久久久妇女| www.夜夜爽| 99视频免费观看| 亚洲国产高清高潮精品美女| 99久久777色| 日韩成人免费| 九色porny丨入口在线| 婷婷六月天在线| 99在线热播| 中文字幕在线观看亚洲| 亚洲国产一区二区三区青草影视| 99精品欧美| 一区二区精彩视频| 成人在线免费观看| 9久久9毛片又大又硬又粗| 国产精品久久久久久av下载红粉| 91精品久久久久久久久99蜜臂| 成人性生交大合| 四季av一区二区凹凸精品| 男人天堂视频在线观看| 国产精品久久a| 久久综合给合久久狠狠色| 日韩中文在线视频| 欧美日韩另类视频| 国产激情偷乱视频一区二区三区| 九九热爱视频精品视频| 色爱综合区网| 国产黄色一级电影| 色播亚洲视频在线观看| 久久久久久久影院| 日韩一级大片在线观看| 国产精品美女www爽爽爽| 亚洲三级影院| 中文一区二区三区四区| gogo在线观看| 美日韩黄色片| 日韩激情视频一区二区| 国产精品亚洲视频在线观看| 欧美videos大乳护士334| 国产精品1区2区3区在线观看| 国产精品久久观看| 国产福利电影在线播放| 99热在线免费| 这里只有精品66|