本文介紹一下js對象的屬性標籤(configurable、writable、enumerable、value、get、set)的使用。html
上圖的要點爲:post
1.Object.getOwnPropertyDescriptor(obj,attr)能夠獲取屬性標籤的信息。url
2.configurable控制屬性是否可配置,writable控制屬性是否可直接修改,enumerable控制屬性是否可被枚舉出來。3d
上圖中Object.keys(person)不會輸出不能被枚舉的對象屬性。htm
上圖的要點爲:對象
1.使用Object.defineProperties可定義對象的多個屬性。blog
2.未設置的屬性標籤的默認值是false。ip
上圖經過重寫promote屬性的setter,使得當給promote賦值爲2後,人的工資發生改變。感受像Java的面向對象中的類。get
這裏的get和set的語法和JavaScript對象之get/set方法中的語法略有不一樣,可是其實本質是同樣的。it
上圖的要點爲:
1.writable只限制了可否直接賦值。
2.configurable爲false依然能直接修改屬性的值。
3.若writable和configurable都是false,則沒法進行屬性的修改。