Object.defineProperty 相關學習

Object.defineProperty 學習
 
  • 描述:
    • 方法直接在對象上定義一個新屬性,或修改對象上的現有屬性
    • 並返回該對象。該方法容許精確地添加或修改對象上的屬性;
    • 語法:
      • Object.defineProperty(obj, prop, descriptor)
        • obj
          必需。目標對象 
        • prop
          定義或者修改的屬性名稱
        • descriptor
          對要定義或者修改的屬性的描述
  • descriptor 目標屬性所擁有的特性配置項
    • configurable:true | false,
      • 是否能夠刪除目標屬性或是否能夠再次修改屬性的特性(writable, configurable, enumerable)。
      • 設置爲true能夠被刪除或能夠從新設置特性;
      • 設置爲false,不能被能夠被刪除或不能夠從新設置特性。
      • 默認爲false。
    • enumerable:true | false,
      • 此屬性是否能夠被枚舉(使用for...in或Object.keys())。
      • 設置爲true能夠被枚舉;
      • 設置爲false,不能被枚舉。
      • 默認爲false。
    • value:任意類型的值,
      • 屬性對應的值,能夠使任意類型的值,
      • 默認爲undefined
    • writable:true | false
      • 屬性的值是否能夠被重寫。
      • 設置爲true能夠被重寫;
      • 設置爲false,不能被重寫。
      • 默認爲false。
    • 存儲器描述
      • 注意:
        • 1. 當使用了getter或setter方法,不容許使用writable和value這兩個屬性
        • 2. get或set不是必須成對出現,任寫其一就能夠。若是不設置方法,則get和set的默認值爲undefined
      • set :function (value){} | undefined
        • 是一種設置屬性值的方法
        • 當設置值的時候觸發的函數,設置的新值經過參數value拿到
      • get :function (){} | undefined
        • 當獲取值的時候觸發的函數
        • 經過返回值設置

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">node

相關文章
相關標籤/搜索