如何在 html 元素内显示 javascript 原型、构造器、作用域

How to display javascript prototype, conscructor, scope inside html element

constructor 属性 可以通过显式引用它来获得,或者通过遍历对象的所有属性(不仅仅是可枚举的属性),使用 Object.getOwnPropertyNames.

[[Prototype]] 属性 等同于 Object.getPrototypeOf 返回的值,因此如果需要,您可以调用它来访问原型对象并循环访问它。

可能是这样的:

const recursiveLogAllProperties = (obj) => {
  Object.getOwnPropertyNames(obj).forEach(prop => console.log(prop, obj[prop]));
  const proto = Object.getPrototypeOf(obj);
  if (proto === Object.prototype) return;
  console.log('------ Prototype:');
  recursiveLogAllProperties(proto);
}
const arr = [1, 2];
recursiveLogAllProperties(arr);

无法从 JavaScript 访问 [[Scopes]] 内部 属性。