国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript對象內部屬性及其特性總結

張金寶 / 2454人閱讀

摘要:表示能否通過循環返回屬性表示能否修改屬性的值包含這個屬性的數據值讀取屬性時調用的函數,默認值為寫入屬性時調用的函數,默認值為其中直接在對象上定義的屬性,默認值均為通過方法或方法,如果不指定的值,則全部默認為。

數據屬性和訪問器屬性
數據屬性 訪問器屬性
共同特性 [[enumerable]]
[[configurable]]
特有特性 [[writable]] [[get]]
[[value]] [[set]]
設置單個屬性方法 Object.defineProperty(obj, prop, descriptor)
設置多個屬性方法 Object.defineProperties(obj, props)
讀取單個屬性描述符 Object.getOwnPropertyDescriptor(obj, prop)
讀取對象所有屬性描述符 Object.getOwnPropertyDescriptors(obj)
備注 obj: 需要被操作的目標對象;
prop: 目標對象需要定義(讀取)或修改的屬性的名稱;
descriptor: 將被定義或修改的屬性的描述符;
props: 該對象的一個或多個鍵值對定義了將要為對象添加或修改的屬性的具體配置;
特性詳情

[[Configurable]]:

表示能否通過delete刪除屬性從而重新定義屬性,(設置為false,表示不能從對象中刪除屬性(在嚴格模式下調用delete會報錯)),

能否修改屬性的特性,

能否把數據屬性修改為訪問器屬性(或相反),

true修改為false是單向的,即一旦把把屬性定義為不可配置的,就不能再把它變回可配置了(此時只能單向修改writabletruefalse)。

[[Enumerable]]: 表示能否通過for-in循環返回屬性

[[Writable]]: 表示能否修改屬性的值

[[Value]] : 包含這個屬性的數據值

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

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

其中直接在對象上定義的屬性,[[Configurable]], [[Enumerable]], [[Writable]]默認值均為true;
通過Object.defineProperty()方法或Object.defineProperties()方法,如果不指定writale, enumerable, configurable 的值,則全部默認為 false。
定義屬性 定義單個屬性
Object.defineProperty(book, "actor", {
    value: "Nicholas"
})
定義多個屬性
var book = {}
Object.defineProperties(book,{
    _year:{
        writable: true,
        value: 2004
    },
    edition:{
        writable: true,
        value: 1
    },
    // year為訪問器屬性
    year:{
        get: function(){
            return this._year;
        },
        set: function(newValue){
            if(newValue > 2004){
                this._year = newValue;
                this.edition += newValue - 2004;
            }
        }
    }
});
// {_year: 2004, edition: 1}
讀取屬性的描述符 讀取單個屬性的描述符
Object.getOwnPropertyDescriptor(book, "_year"); 
// {value: 2006, writable: true, enumerable: false, configurable: false}
Object.getOwnPropertyDescriptor(book, "edition"); 
// {value: 3, writable: true, enumerable: false, configurable: false}
Object.getOwnPropertyDescriptor(book, "year"); 
// {get: ?, set: ?, enumerable: false, configurable: false}

Object.getOwnPropertyDescriptor(book, "actor"); 
// {value: "Nicholas", writable: false, enumerable: false, configurable: false}
讀取所有屬性的描述符
Object.getOwnPropertyDescriptors(book)

注意
從上面代碼Object.getOwnPropertyDescriptor()執行結果中可以看出來,通過Object.defineProperty()方法或Object.defineProperties()方法,如果不指定數據屬性或訪問器屬性的writale, enumerable, configurable 的值,則全部默認為 false

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/108589.html

相關文章

  • js閉包的理解

    摘要:一般來講,函數執行完畢后,局部活動對象就會被銷毀,內存中僅保存全局作用域,但是閉包的情況有所不同理解閉包的前提先理解另外兩個內容作用域鏈垃圾回收作用域鏈當代碼在執行過程中,會創建變量對象的一個作用域鏈。 閉包是javascript語言的一個難點,也是它的特色,很多高級應用都要依靠閉包來實現。個人的理解是:函數中嵌套函數。 閉包的定義及其優缺點 閉包是指有權訪問另一個函數作用域中的變量的...

    EasonTyler 評論0 收藏0
  • 前端面試題總結

    摘要:工作中總結的一些比較重要的前端技能,覺得在面試中比較合適提問,即能查看出面試者的技術功底,又能考察其知識體系的廣度。異步編程的考察,其關鍵字的使用,與的關系,同時可以深入考察總共有幾種異步編程的方式。 工作中總結的一些比較重要的前端技能,覺得在面試中比較合適提問,即能查看出面試者的技術功底,又能考察其知識體系的廣度。適用于應屆生和工作年限兩年下的同學,掌握下面的知識基本滿足工作需求了。...

    wuyangnju 評論0 收藏0
  • 前端面試題總結

    摘要:工作中總結的一些比較重要的前端技能,覺得在面試中比較合適提問,即能查看出面試者的技術功底,又能考察其知識體系的廣度。異步編程的考察,其關鍵字的使用,與的關系,同時可以深入考察總共有幾種異步編程的方式。 工作中總結的一些比較重要的前端技能,覺得在面試中比較合適提問,即能查看出面試者的技術功底,又能考察其知識體系的廣度。適用于應屆生和工作年限兩年下的同學,掌握下面的知識基本滿足工作需求了。...

    yangrd 評論0 收藏0
  • JavaScript基礎系列---閉包及其應用

    摘要:所以,有另一種說法認為閉包是由函數和與其相關的引用環境組合而成的實體。所以本文中將以維基百科中的定義為準即在計算機科學中,閉包,又稱詞法閉包或函數閉包,是引用了自由變量的函數。 閉包(closure)是JavaScript中一個神秘的概念,許多人都對它難以理解,我也一直處于似懂非懂的狀態,前幾天深入了解了一下執行環境以及作用域鏈,可戳查看詳情,而閉包與作用域及作用域鏈的關系密不可分,所...

    leoperfect 評論0 收藏0

發表評論

0條評論

張金寶

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<