遍历对象属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遍历对象属性相关的知识,希望对你有一定的参考价值。

 初始化对象:

var person = function(name){
    this._name = name;
}

var grand = function(){
    this.city = "sh";
}

grand.prototype.age = 18;
        
person.prototype  = new grand();

1. for in 不仅能遍历自身的可枚举属性,还遍历原型对象中的可枚举属性

var p = new person();
for(var key in p){
    console.log(key)
}

结果:

_name

city

age

2. Object.keys(object); 遍历对象自身的可枚举属性

var keys = Object.keys(p);
for(var key in keys){
    console.log(key+":"+keys[key])
}

结果:

0:_name

3.object.hasOwnProperty(propertyName); 检测propertyName是否是object的自身属性

即使属性是不可遍历的,只要它存在于object对象中,就返回true

Object.defineProperty(p,"home",{
    value:"nanjing",
    enumerable:false
});
console.log(p.hasOwnProperty("home")); // true

4.object.propertyIsEnumerable(propertyName); //检测propertyName是否可遍历

propertyName必须是自身的属性,如果属性存在于原型对象上,即使属性可遍历,也返回false

Object.defineProperty(p,"home",{
    value:"nanjing",
    enumerable:true
});

console.log(p.hasOwnProperty("home")); // true
console.log(p.propertyIsEnumerable("age")); //false

"home"是对象自身属性,且可遍历

"age"存在于原型对象上,返回false;

 

以上是关于遍历对象属性的主要内容,如果未能解决你的问题,请参考以下文章

angularjs怎么遍历每个对象的属性的值

java 遍历 类属性的属性值

python通过点操作符和reduce遍历对象的属性的代码

遍历 MongoDB 对象属性

使用 Symbol 键遍历对象属性

javaScript数组遍历