var foo = {
a: 'name',
b: null,
c: undefined,
d: function () { },
e: Symbol(),
[Symbol('bar')]: 25
}
Object.defineProperty(foo, 'f', {
value: 42,
enumerable: false
});
foo.__proto__ = {
g: 233
}
// console.log(Object.values(foo));
[ 'name', null, undefined, [Function: key4], Symbol() ] (不包括不可枚举属性但不包括Symbol值作为名称的属性)
Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
Object.getOwnPropertyDescriptors() 方法用来获取一个对象的所有自身属性的描述符。 (包括Symbol属性和不可枚举属性)
// const baz = Object.getOwnPropertyDescriptors(foo)
// console.log(Reflect.ownKeys(foo)); //[ 'a', 'b', 'c', 'd', 'e', 'f', Symbol(bar) ]
// Reflect.ownKeys 方法返回一个由目标对象自身的属性键组成的数组。它的返回值等同于Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target))。
判断一个对象是否为空对象
function isEmptyObj(obj) {
return Reflect.ownKeys(obj).length > 0 ? false : true
}
console.log(isEmptyObj(foo)); // false
判断一个对象是否为空对象
最新推荐文章于 2024-05-23 14:50:23 发布