Object.defineProperty()屬性介紹

  對象是由多對key/value組成得無序集合,經過object.key=value來設置屬性外,還可經過Object.defineProperty定義新屬性或修改原有的屬性。spa

  語法:Object.defineProperty(obj, prop, descriptor):code

     參數:對象

      1 obj:必需。目標對象
      2 prop:必需。需定義或修改的屬性的名字
      3 descriptor:必需。目標屬性所擁有的特性
  
對象已有的屬性添加特性描述
 Object.defineProperty(obj,"test",{
    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。
 });

  注意:一旦使用Object.defineProperty給對象添加屬性,那麼若是不設置屬性的特性,那麼configurable、enumerable、writable這些值都爲默認的false。blog

相關文章
相關標籤/搜索