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