对象的枚举–for in 循环
先构建一个对象
var person = {
name: "xiaoming",
age: 24,
sex: 'male',
height: 170,
weight: 75
}
我们用for in循环将各属性及属性值调用。
for in 循环
for(var prop in 对象) ---- prop 指对象里的属性名
for(var prop in person){
console.log(prop+" "+typeof(prop));
最后访问的结果:
name string
age string
sex string
height string
weight string
但如果我们访问的是person.prop呢?console.log(person.prop);
此时我们查看结果为5个undefined。
原因
person.prop会隐性的执行person[‘prop’],而在这个person对象中,并没有prop这个属性,所以为undefiend。
如果我们访问的是console.log(person[prop]);
,则会将各属性值返回。
hasOwnProperty–判断是否为自身属性,是则返回true 否则返回false。
var person = {
name: "xiaoming",
age: 24,
sex: 'male',
height: 170,
weight: 75,
__proto__:{
lastName:"yao"
}
}
for(var prop in person){
if(person.hasOwnProperty(prop)){
console.log(person[prop]);
}
}
通过上段代码也可以访问各属性值,运用hasOwnProperty的方法,放在if当中充当条件语句。