如何在 NodeJS 中获取 __proto__?

How to get __proto__ in NodeJS?

因此,当我在浏览器控制台中将数组声明为 var arr = [] 然后执行 arr.__proto__ 时,我在控制台中获得了原型。

Browser Javascript

但是当我在 nodeJs 中做同样的事情时,我得到 [] 作为结果。

NodeJs

Nodejs 在服务器上 javascript 运行 为什么结果不一样。我错过了什么吗?我如何访问nodeJs中的原型并获得相同的结果。

您看到的只是显示差异造成的怪癖。 arr.__proto__ 在两种情况下都指向完全相同的对象 - Array.prototype - 只是你的浏览器和 Node 将对象呈现给用户以进行不同的显示。

例如,您已经可以在 Node 中访问 arr.__proto__.fill,即使它在记录 arr.__proto__ 时未显示在控制台中。如果需要,您可以手动遍历属性以显示它们:

const arr = [];
Object.getOwnPropertyNames(arr.__proto__).forEach((key) => {
  console.log(key);
});

以上将向您展示两种环境中完全相同的结果。

如果将 Node 连接到 Chrome's console,您会发现 console.log(arr.__proto__) 在 Chrome 中查看来自 Node 的日志时看起来完全一样从 Chrome.

中的网页登录

但是,请注意 __proto__ 已被弃用 - 现在您应该更喜欢使用 Object.getPrototypeOf