一些枚举对象的方法

方法名 包含原型链上的 可枚举的
Object.keys()
for-in
Object.getOwnPropertyName() 可或不可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Object.prototype.d = 'ddd'
let obj = new Object({
a: 'a1',
b: 'b2',
c: 'c3'
})
Object.defineProperty(obj,'e',{
value: 'eeee',
enumerable: false //不可被枚举
})

console.log(Object.keys(obj)) //[ 'a', 'b', 'c' ]

console.log(Object.getOwnPropertyNames(obj))//[ 'a', 'b', 'c', 'e' ]

let arr = []
for(let i in obj){
arr.push(i)
}
console.log(arr)//[ 'a', 'b', 'c', 'd' ]

//不包含原型上的,可枚举的属性
console.log(Object.values(obj)) //[ 'a1', 'b2', 'c3' ]
console.log(Object.entries(obj))//[ [ 'a', 'a1' ], [ 'b', 'b2' ], [ 'c', 'c3' ] ]