jiuxu

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

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)
}

分类:

技术点:

相关文章: