javascript對象3個屬性特征

對象特征:

1、writable:可寫

writable表示是否可以設置屬性的值

let obj = {age:10}
obj.age = 1   // 給屬性重新賦值
console.log(obj.age) //1

2、enumerable:可枚舉

enumerable特性指是否可以在 for/in 循環中返回屬性名字,默認自有屬性和繼承屬性都可以枚舉

let obj = {name:"zhang", age:20, sex:"男"}

let newObj = Object.create(obj)
newObj.height = 200

for(p  in newObj){
    console.log(p,"->", newObj[p])
}

輸出:

height -> 200
name -> zhang
age -> 20
sex -> 男

3、configurable:可配置

configurable表示是否可通過delete刪除屬性

let obj = {name:"jim"}

delete obj.name  // 刪除後該屬性將不存在

console.log(obj.name)   //undefined

對象中的自有屬性上面3個特性默認都是 true 。如果要修改這些特征的默認值,可以使用 Object.defineProperty() 方法。defineProperty 接收3個參數, 對象、要修改的屬性名、特征值對象。

例如:如果要設置 sex 屬性的 writable 為 false , 則可通過 defineProperty()方法來操作

let obj = {name:"zhang", age:20, sex:"男"}
Object.defineProperty(obj, "sex", {writable:false})
obj.sex = "女"
console.log(obj.sex) // 男 


設置為writablefalse後,即使給sex屬性重新賦值為 女 ,但是它的值還是原來的 男 ,可通過類似的操作配置屬性的可枚舉和可配置特性。

到此這篇關於javascript對象3個屬性特征的文章就介紹到這瞭,更多相關javascript對象屬性特征內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: