前端/移动开发面试题更新 2026-08-05

在 JavaScript 中,原型链的最终指向何处?请描述如何通过代码输出原型链的末端对象。

前端/移动开发技术原理JavaScript

考察说明

考察对 JavaScript 原型链机制的理解以及如何编程验证原型链的末端。

回答思路

  1. 【回答框架 1】原型链的终点是 Object.prototype。所有普通对象最终都会通过内部 [[Prototype]] 链接到 Object.prototype,而 Object.prototype 的原型为 null,因此链的终点是 null。
  2. 【回答框架 2】可以通过 Object.getPrototypeOf 方法逐级向上获取对象的原型,直到返回 null 为止。例如:let obj = {}; let proto = Object.getPrototypeOf(obj); 当 proto 为 Object.prototype 时,再对其调用 Object.getPrototypeOf 会得到 null,此时即为终点。
  3. 【关键点 1】原型链的终点是 null,而 Object.prototype 是链上的最后一个对象。
  4. 【关键点 2】使用 Object.getPrototypeOf 可以安全地获取任何对象的原型。
  5. 【关键点 3】可以通过循环调用 Object.getPrototypeOf 直至返回 null 来打印原型链的终点。
  6. 【易错点 1】不要混淆 __proto__ 和 Object.getPrototypeOf,前者是历史遗留属性,后者是标准方法。
  7. 【易错点 2】某些特殊对象(如 Object.create(null) 创建的对象)没有原型,其原型链直接为 null,但这并非标准原型链的普遍终点。