JavaScript中的屬性包含數據屬性和訪問器屬性函數
1.數據屬性。數據屬性包含的是一個值的位置,能夠對這個值進行讀寫。this
2.訪問器屬性。這個屬性不包含數據值,包含的是一對get和set方法,在讀寫訪問器屬性時,就是經過這兩個方法來進行操做處理的。訪問器屬性包含的四個特性:spa
訪問器屬性不能直接定義,要經過Object.defineProperty()這個方法來定義。code
var person = {name:'tu'} Object.defineProperty(person,'age',{ get:function(){return 10}, set:function(value){this.age = 10+value} //這樣設置會產生遞歸 }) person.age = 10 //報錯 ,由於設置name屬性會遞歸無限循環 alert(person.age) for(prop in person){alert(prop)} //只會打印出name屬性,age屬性默認不可枚舉
若是沒有設置get則這個屬性不可讀,若是沒有設置set,這個屬性不可修改;對象
若是set和set都沒定義那這個屬性就是數據屬性blog
3.能夠經過Object.defineProperties(對象,描述對象)定義多個屬性(數據屬性或者訪問器屬性),經過這個方式新增的屬性 屬性特性都爲false遞歸
能夠經過Object.getOwnPropertyDescriptors(對象)查看對象全部屬性的信息ip