Object.defineProperty() 方法會直接在一個對象上定義一個新屬性,或者修改一個對象的現(xiàn)有屬性, 并返回這個對象
Object.defineProperty(obj, prop, descriptor)
參數(shù)
obj
要在其上定義屬性的對象。
prop
要定義或修改的屬性的名稱。
descriptor
將被定義或修改的屬性的描述符。
返回值
被傳遞給函數(shù)的對象。
代碼示例
var a= {}
Object.defineProperty(a,"b",{
value:123456
})
console.log(a.b);//123456
descriptor
- configurable
當(dāng)且僅當(dāng)該屬性的 configurable 為 true 時,該屬性描述符才能夠被改變,也能夠被刪除。
默認(rèn)為 false - enumerable
當(dāng)且僅當(dāng)該屬性的 enumerable 為 true 時,該屬性才能夠出現(xiàn)在對象的枚舉屬性中。
默認(rèn)為 false
- value
該屬性對應(yīng)的值。可以是任何有效的 JavaScript 值(數(shù)值,對象,函數(shù)等)。
默認(rèn)為 undefined。 - writable
當(dāng)且僅當(dāng)該屬性的 writable 為 true 時,該屬性才能被賦值運(yùn)算符改變。
默認(rèn)為 false
- get
一個給屬性提供 getter 的方法,如果沒有 getter 則為 undefined。該方法返回值被用作屬性值。
默認(rèn)為 undefined
- set
一個給屬性提供 setter 的方法,如果沒有 setter 則為 undefined。該方法將接受唯一參數(shù),并將該參數(shù)的新值分配給該屬性。
默認(rèn)為 undefined