对象的属性遍历

一般来说,对象的属性遍历有三种方法,

1  for  ... in   

最简单的了,for(item in obj)

2  Object.keys

返回一个对象属性的数组

eg: 

const obj = {
    name:'cc',
    age:33
}

const valueList= Object.keys(obj)
//[name,age]

3 Object.getOwnpropertyNames

和上面的一样都是返回一个数组

总结:

  • for…in 遍历的是对象的可枚举属性,包括原型
  • Object.keys 遍历的是对象可枚举属性,不包括原型
  • Object.getOwnPropertNames 遍历的是对象的所有属性,不包括原型
function Students(name) {
    this.name = name;
    this.run = function () {
        console.log(this.name + 'is running')
    }
}


Students.prototype.score = 100
Students.prototype.learning = function () {
    console.log(this.name +'wode'+'hahahdf')
}

var newPeople = new Students('chenfei')

// newPeople.run()
Object.defineProperty(newPeople,'name',{
    enumerable:false,
    value:'heihei'
})


const getOwn = Object.getOwnPropertyNames(newPeople)
console.log(getOwn)


const valueList= Object.keys(newPeople)
console.log(valueList)

for(item in newPeople){
    console.log(item)
}

猜你喜欢

转载自www.cnblogs.com/jiuxu/p/12108097.html