代码test1:
var obj = {}
Object.defineProperty(obj, 'method1', {
value: function () {
alert("Non enumerable property");
},
enumerable: false
})
console.log(Object.keys(obj))
// []
console.log(Reflect.ownKeys(obj))
// ["myMethod"]
代码test2:
const obj = {
id1: 42,
id2: 13
};
console.log(Object.keys(obj))
// ['id1', 'id2']
console.log(Reflect.ownKeys(obj))
// ['id1', 'id2']
从结果上看出:
Object.keys()返回属性key,但不包括不可枚举的属性
Reflect.ownKeys()返回所有属性key
从网上搜索资料所得:
Object.keys() :
相当于返回属性数组
Reflect.ownKeys() :
相当于
Object.getOwnPropertyNames(target) concat(Object.getOwnPropertySymbols(target)
注意:
getOwnPropertyNames()
方法: 返回所有属性的数组
Object.getOwnPropertySymbols()
方法: 返回所有符号属性直接发现在给定的对象
————————————————