Javascript:如何获取对象或数组的“prototype”或“prototype”的所有属性

Javascript:如何获取对象或数组的“prototype”或“prototype”的所有属性,javascript,arrays,object,prototype,Javascript,Arrays,Object,Prototype,正如我们所知,Object.keys将返回对象或数组的自身属性,但我需要数组或对象的所有属性。如果您看到下图,则[].\uuuuu proto\uuuu和{}.\uuuu proto\uuuu的所有属性都不可枚举 获取所有属性的最佳方式是什么,包括own和\uuuu proto\uuuu 获取所有属性的最佳方式是什么,包括拥有和\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 我尝试了下面的方法,不确

正如我们所知,
Object.keys
将返回对象或数组的自身属性,但我需要
数组或对象的所有属性。如果您看到下图,则
[].\uuuuu proto\uuuu和{}.\uuuu proto\uuuu
的所有属性都不可枚举

获取所有
属性
的最佳方式是什么,包括
own
\uuuu proto\uuuu

获取所有
属性
的最佳方式是什么,包括
拥有
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

我尝试了下面的方法,不确定是否是最好的方法

例如:

const getAllProperties=ref=>{
const own_properites=Object.keys(参考)
const proto_properties=Object.keys(Object.getOwnPropertyDescriptors(参考.u proto_uu))
返回[…自有财产,…原始财产]
}
常量对象={
姓名:“A”
};
log({objectProps:getAllProperties(object)})
常量数组=[1,2,3];

log({arrayProps:getAllProperties(array)})
您可以使用
Object.getOwnPropertyNames
而不是先查看描述符,从而稍微缩短它。此外,当前方法正在获取实例的
对象.keys
,但
对象.keys
跳过不可枚举的属性:

constobj={};
defineProperty(obj,'foo',{value:'value'});

console.log(Object.keys(obj))我打赌这些答案比参考链接更好?你怎么说@CertainPerformance