属性的的查询和设置
查询属性可以应‘.’和‘[]’来获取属性的值
var name = student.gf //获得stu中‘gf’的属性
var name = student[gf] //同上
跟查询一样可以用.点或方括号创建属性或给属性赋值单要在赋值表达式的左侧
var student = {};
student.gf = 6
console.log(JSON.stringify(student))
删除属性DELETE
delete只能删除原始属性 不能删除继承属性
//上篇博客举例子了就不举了
检测属性
判断某个属性是否在某个对象内可以用in,hasOwnPreperty(),propertyIsEnumerable()
in运算符
var o = {x:1}
'x' in o //truex在o中 'y' in o //false y没有在o
检测对象是否具有指定名称的属性。如果有,返回true
,否则返回false
如果是继承属性将返回false
var o = {x:1}
o.hasOwnPreperty(‘x’)//true
o.hasOwnPreperty('y')//false
propertyIsEnumerable()是hasOwnPreperty()的增强版
只有检测到是自由属性才会返回true
var o = gf({y:2})
o.x=1
o.propertyIsEnumerable('x') // true
o.propertyIsEnumerable('y') //false
getter 他是一个只读属性
setter 他是一个只写属性 如果属性同时具有gettre setter方法那么他是一个读写属性
读。写两者不可兼得,它只拥有了getter时它仅仅只读
var obj = {
a: 0,
get b(){
return this.a + 1;
}
}
console.log(JSON.stringify(obj))
属性的枚举
判断属性是否可枚举
属性不光有值还有除了值以外的其他特性其中一个影响属性遍历的特性就是 [[Enumerable]]
,如果值为 true
这个属性是可枚举的
for...in
循环可以遍历对象中所有可枚举的对象属性