两者得到的都是对象属性的集合,以数组形式返回
Object.keys()
得出的对象的可枚举属性,并且不包括原型上的属性和Symbol
的属性Reflect.ownKeys()
得出的对象自己的所有属性,包括不可枚举和Symbol
的属性,但是拿不到原型上的属性
Object.prototype.pr = "我是原型属性";
let s = Symbol();
let obj = {
[s]: "this is Symbol",
a: "a",
};
Object.defineProperty(obj, "name", {
value: "sunny",
configurable: true,
enumerable: false,
writable: true,
});
console.log("Object.keys", Object.keys(obj)); // ["a"]
console.log("Reflect.ownKeys(obj)", Reflect.ownKeys(obj)); //["a", "name", Symbol()]