日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Js中的数据属性和访问器属性

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Js中的数据属性和访问器属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Js中的數據屬性和訪問器屬性

在javaScript中,對象的屬性分為兩種類型:數據屬性和訪問器屬性。

一、數據屬性

1.數據屬性:它包含的是一個數據值的位置,在這可以對數據值進行讀寫。

2.數據屬性包含四個特性,分別是:

configurable:表示能否通過delete刪除屬性從而重新定義屬性,能否修改屬性的特性,或能否把屬性修改為訪問器屬性,默認為true

?enumerable:表示能否通過for-in循環返回屬性

?writable:表示能否修改屬性的值

?value:包含該屬性的數據值。默認為undefined

如下面這個例子:創建一個對象person,打印出name屬性的特性的默認值

?

?

執行結果:

?

?

?

對幾個特性的測試:

?

?

測試結果:

?

?

3.修改數據屬性的默認特性

修改屬性屬性的默認特性要用到一個方法:Object.defineProperty()方法,這個方法有三個參數:屬性所在的對象,屬性名,一個描述符對象。

通過這個方法,我們可以來修改一個屬性的這4個特性。

如我們對剛剛上面的penson對象里面的name屬性的特性進行修改:

?

?

執行結果:

?

結果中可以看到,person對象的name屬性中的四個特性的值都相應改變了。同時后面的報錯是對configurable這個特性改為false后的局限的測試。

上面的注釋中是分別對各個屬性修改后的影響的測試。大家可以自己運行下試試效果。

?

二、訪問器屬性

1.訪問器屬性:這個屬性不包含數據值,包含的是一對get和set方法,在讀寫訪問器屬性時,就是通過這兩個方法來進行操作處理的。

2.訪問器屬性包含的四個特性

configurable:表示能否通過delete刪除屬性從而重新定義屬性,能否修改屬性的特性,或能否把屬性修改為訪問器屬性,默認為false

?enumerable:表示能否通過for-in循環返回屬性,默認為false

?Get:在讀取屬性時調用的函數,默認值為undefined

?Set:在寫入屬性時調用的函數,默認值為undefined

這里要注意下,訪問器屬性不能直接定義,要通過Object.defineProperty()這個方法來定義。

下面來個例子,創建一個訪問器對象book,接著打印出其year訪問器屬性的特性描述并對其方法進行測試打印:

?

?

執行結果:

?

其他兩個特性configurable,enumerable的測試方式可以參照數據屬性的。不過在這特別說明下,關于configurable這個特性,因為訪問器屬性里面這個

特性默認值為false,如果程序后面需要對該屬性進行delete操作等,那就在定義訪問器屬性時,將這個特性設置為true,不然這個會導致后面一些報錯的問題。

轉載于:https://www.cnblogs.com/yanan-boke/p/7771264.html

總結

以上是生活随笔為你收集整理的Js中的数据属性和访问器属性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。